Code: Select all
Tweaked it myself and it finally gave me accepted:)
Moderator: Board moderators
Code: Select all
Tweaked it myself and it finally gave me accepted:)
Code: Select all
Removed after AC
Code: Select all
AC removed
Code: Select all
if (input.hasNextInt())
n = input.nextInt();
else
break;
Code: Select all
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argc, char const *argv[])
{
long int n, i, num, ant;
unsigned long int target, counter;
char c;
while(scanf("%ld", &n) != EOF){
if (n<=0)
{
while((c = getchar()) != '\n' && (c = getchar()) != EOF);
printf("Not jolly\n");
continue;
}
target = pow(2,n)-1; // Example if n = 4 -> target = 1111 -> counter = 0001
counter = 1; // positions 3, 2, 1 need to be filled to get a Jolly number
scanf(" %ld", &ant);
for (i = 1; i < n; ++i)
{
scanf(" %ld", &num);
counter = (counter | (unsigned long int)pow(2,abs(ant - num)));
ant = num;
}
while((c = getchar()) != '\n' && (c = getchar()) != EOF);
if (target == counter)
{
printf("Jolly\n");
}
else
{
printf("Not jolly\n");
}
}
return 0;
}
Code: Select all
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(void){
int nums[3000];
int num_checks[3000];
int num;
char ch;
char char_num[4];
char line[10000];
while (1){ // 케이스 별
int i = 0;
//int exit = 0;
int jolly = 1;
while ( !((ch = getchar()) == ' ' )){ // 처음 숫자를 입력받는다.
char_num[i++] = ch;
if (ch == '\n') break;
}
if (char_num[0] == '\n') break;
num = atoi(char_num);
if (ch == '\n') {
if (num == 1) puts("Jolly");
else puts("Not jolly");
continue;
}
for (i = 0; i < num; i++){
scanf("%d", &nums[i]);
//getchar(); // 스페이스바
//printf("%d ", nums[i]);
if (i != num - 1) // 인덱스가 0 ~ num - 2 까지 되도록
num_checks[i] = i + 1; // 들어간 숫자는 1 ~ num - 1
}
int index;
for (i = 1; i < num; i++){
index = abs(nums[i] - nums[i - 1]) - 1;
if (index >= num - 1 || index == -1 || num_checks[index] == 0){
jolly = 0;
break;
}
num_checks[index] = 0;
}
gets(line);
if (jolly) puts("Jolly");
else puts("Not jolly");
}
return 0;
}
Code: Select all
#include <stdio.h>
#include <math.h>
int main()
{
int n;
int ar[3001];
while(scanf("%d", &n)!=EOF)
{
int ar1[n-1],i,flag=0;
for(i=0; i<n; i++)
{
scanf("%d", &ar[i]);
}
for (i=0; i<n; i++)
{
ar[i]=abs(ar[i]);
}
int j=0,k=0;
for(i=0; i<n-1; i++)
{
if(ar[j]>ar[j+1])
{
ar1[k]=ar[j]-ar[j+1];
j++;
k++;
}
else
{
ar1[k]=ar[j+1]-ar[j];
j++;
k++;
}
}
for(i=0;i<n-1;i++){
printf("%d ", ar1[i]);
}
i=0;
while(i<n-2){
if(ar1[0]!=n && ((ar1[i]-ar1[i+1]==0)||(ar1[i]-ar1[i+1]==1))&& ar1[n-2]==1){
flag=1;
}
i++;
}
if(flag==1)printf("Jolly\n");
else printf("Not Jolly\n");
}
return 0;
}
Code: Select all
#include <iostream>
#include <cmath>
#include <vector>
using namespace std;
typedef long long int lli;
int main(){
lli n,temp,index;
vector <lli> data;
vector <bool> check;
bool result;
while( 1 ){
cin >> n;
if( n == 0 )
break;
check.clear();
data.clear();
result = true;
for( lli i = 0; i < n; i++ ){
cin >> temp;
data.push_back( temp );
}
for( lli i = 0; i < n - 1; i++ ){
check.push_back( false );
}
for( lli i = 1; i < n; i++ ){
index = abs( data[i] - data[i - 1] ) - 1;
if( index <= (n - 2 ) )
check[ index ] = true;
}
for( lli i = 0; i < check.size(); i++ ){
if( check[i] == false )
result = false;
}
if( result )
cout << "Jolly" << endl;
else
cout << "Not jolly" << endl;
}
}