結果
| 問題 |
No.474 色塗り2
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2016-12-25 15:09:31 |
| 言語 | C90 (gcc 12.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 875 bytes |
| コンパイル時間 | 234 ms |
| コンパイル使用メモリ | 23,040 KB |
| 実行使用メモリ | 24,900 KB |
| 最終ジャッジ日時 | 2024-12-14 19:05:24 |
| 合計ジャッジ時間 | 802 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 1 WA * 3 |
コンパイルメッセージ
main.c:6:5: warning: built-in function ‘pow’ declared as non-function [-Wbuiltin-declaration-mismatch]
6 | int pow[2000000];
| ^~~
main.c: In function ‘main’:
main.c:27:9: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
27 | scanf("%ld",&t);
| ^~~~~~~~~~~~~~~
main.c:29:17: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
29 | scanf("%lld %ld %ld",&a,&b,&c);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ソースコード
#include<stdio.h>
const long long mod=1048576;
const long gpow=524287;
long long kai[2000000];
int pow[2000000];
int count(long i){
if(i%2==0){
return 1+count(i/2);
}
return 0;
}
long long gyaku(long long e,long p){
if(p==0) return 1;
if(p%2==1) return gyaku(e*e%mod,p/2)*e%mod;
else return gyaku(e*e%mod,p/2);
}
int main(){
int e;
long t,i=0;
long b,c;
long long a,d;
kai[0]=1;
scanf("%ld",&t);
for(;t>0;t--){
scanf("%lld %ld %ld",&a,&b,&c);
if(c%2==0){
printf("0\n");
}else{
for(;i<b+c-1;i++){
if(i%2==0){
kai[i+1]=kai[i]*(i+1)%mod;
pow[i+1]=pow[i];
}else{
kai[i+1]=kai[i];
pow[i+1]=(pow[i]+count(i+1))%20;
}
}
d=kai[b+c-1]*gyaku(kai[b],gpow)%mod*gyaku(kai[c-1],gpow)%mod;
d=d*c%mod;
e=(pow[b+c-1]-pow[b]-pow[c-1]+40)%20;
d<<=e;
d=(d+a-1)%mod;
printf("%d\n",(d&a)==a);
}
}
return 0;
}