# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
245275 | Ort | Trol (COCI19_trol) | C11 | 5 ms | 352 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<stdio.h>
#define ll long long
int t, i, j;
ll f, s;
ll arr[17] = {83385908498332845, 9265100944259205,1029455660473245, 114383962274805, 12709329141645, 1412147682405, 156905298045, 17433922005, 1937102445, 215233605, 23914845, 2657205, 295245, 32805, 3645, 405, 45};
ll fpow(ll a, ll b) {
ll res = 1;
while(b>0) {
if(b&1) res = res * a;
a = a * a;
b >>= 1;
}
return res;
}
ll solve(ll a) {
ll n = 18;
ll sol = 0;
ll d;
for(j=0;j<17;j++) {
d = fpow(9, n-j-1);
while(a>=d) {
sol += arr[j];
a -= d;
}
}
sol += ((a*(a+1))>>1);
return sol;
}
int main() {
scanf("%d", &t);
for(i=0;i<t;i++) {
scanf("%lld%lld", &f, &s);
printf("%lld\n", solve(s)-solve(f-1));
}
return 0;
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |