Difference between r1.1 and the current
@@ -5,9 +5,9 @@
|| 출력 || ||
== Status ==
== Source Code ==
== Status ==
|| Run ID || User || Problem || Result || Memory || Time || Language || Code Length ||
|| 9255717 || enochbible || 2551 || Time Limit Exceeded || || || C || 1263B ||
|| 9255761 || enochbible || 2551 || Accepted || 184K || 641MS || C || 1024B ||
|| Run ID || User || Problem || Result || Memory || Time || Language || Code Length ||
|| 9255717 || enochbible || 2551 || Time Limit Exceeded || || || C || 1263B ||
|| 9255761 || enochbible || 2551 || Accepted || 184K || 641MS || C || 1024B ||
== Source Code ==
문제 설명 ¶
링크 | http://poj.org/problem?id=2551 |
개요 | |
입력 | |
출력 |
Status ¶
Run ID | User | Problem | Result | Memory | Time | Language | Code Length |
9255717 | enochbible | 2551 | Time Limit Exceeded | C | 1263B | ||
9255761 | enochbible | 2551 | Accepted | 184K | 641MS | C | 1024B |
Source Code ¶
#include <stdio.h> #define LENBOUND 10000 #define ARRBOUND 2500 // LENBOUND/4 typedef struct longint { int length; int digits[ARRBOUND]; // 0000~9999 } longint; void ones( longint *pns, int len ) { int i; int j; pns->length = len; for( i = 0; i < ARRBOUND; i++ ) pns->digits[i] = 0; j = ARRBOUND - 1; while( len >= 4 ) { pns->digits[j] = 1111; len -= 4; j--; } switch(len) { case 1: pns->digits[j] = 1; break; case 2: pns->digits[j] = 11; break; case 3: pns->digits[j] = 111; break; } } int division( longint *pns, int divisor ) { int i = ARRBOUND - (pns->length + 3) / 4; int rem = 0; for( ; i < ARRBOUND; i++ ) { pns->digits[i] += (rem * 10000); rem = pns->digits[i] % divisor; } return rem; } void main() { longint ns; int n; while( scanf("%d", &n) != EOF ) { int i; for( i = 1; i <= LENBOUND; i++ ) { ones(&ns, i); if( division(&ns, n) == 0 ) break; } if( i <= LENBOUND ) printf("%d\n", i); } }