結果
問題 | No.469 区間加算と一致検索の問題 |
ユーザー | Yamyuki |
提出日時 | 2016-12-21 10:14:10 |
言語 | C90 (gcc 12.3.0) |
結果 |
AC
|
実行時間 | 4,839 ms / 5,000 ms |
コード長 | 723 bytes |
コンパイル時間 | 236 ms |
コンパイル使用メモリ | 21,248 KB |
実行使用メモリ | 10,984 KB |
最終ジャッジ日時 | 2024-12-21 17:07:32 |
合計ジャッジ時間 | 75,516 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 49 |
コンパイルメッセージ
main.c: In function ‘main’: main.c:20:9: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 20 | scanf("%ld %ld",&n,&m); | ^~~~~~~~~~~~~~~~~~~~~~ main.c:31:17: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 31 | scanf("%c",&query); | ^~~~~~~~~~~~~~~~~~ main.c:33:25: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 33 | scanf("%ld %ld %ld",&l,&r,&k); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ソースコード
#include<stdio.h> const unsigned long long mod=1000000007; long long p[1000000]; long c; typedef struct { long time; unsigned long long h; } first; first f[100000]; long search(){ } int main(){ long n,m,i,l,r,k; unsigned long long now=0; char query; scanf("%ld %ld",&n,&m); p[0]=1; for(i=0;i<n;i++){ p[i+1]=p[i]*mod; } f[0].time=0; f[0].h=0; c=1; l=0; for(i=0;i<m;i++){ getchar(); scanf("%c",&query); if(query=='!'){ //add scanf("%ld %ld %ld",&l,&r,&k); now+=(unsigned long long)(p[r]-p[l])*k; for(l=0;l<c;l++){ if(f[l].h==now) break; } if(c==l){ f[c].time=i+1; f[c].h=now; c++; } }else{ // query=='?' question printf("%ld\n",f[l].time); } } return 0; }