Submission #00258
ソースコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | #include <bits/stdc++.h> #define ll long long #define gcd(x,y) __gcd(x,y) //最大公約数 #define lcm(x,y) x/(__gcd(x,y))*y //最小公倍数 #define so(a) sort(a.begin(),a.end()) //ソート昇順 #define sog(a) sort(a.begin(),a.end(),greater<int>()) //ソート降順 using namespace std; int main(){ int n,m,p,q; cin>>n>>m>>p>>q; while (n!=0&&m!=0&&p!=0&&q!=0){ int x[m],s[m+1],g[m+1]; for ( int i=0;i<m;i++){ cin>>x[i]; } s[0]=p; for ( int i=0;i<m;i++){ //右側 if (s[i]==x[i]){ s[i+1]=s[i]+1; } else if (s[i]==x[i]+1){ s[i+1]=s[i]-1; } else { s[i+1]=s[i]; } } g[m]=q; for ( int i=m;i>0;i--){ if (g[i]==x[i-1]){ g[i-1]=g[i]+1; } else if (g[i]==x[i-1]+1){ g[i-1]=g[i]-1; } else { g[i-1]=g[i]; } } int a,b,c=0; for ( int i=0;i<=m;i++){ if (max(s[i],g[i])-min(s[i],g[i])==1&&c==0){ a=min(s[i],g[i]); b=i; c=1; } } if (c==1){ cout<<a<< ' ' <<b<<endl; } else if (s[m]==q){ cout<< "OK" <<endl; } else { cout<< "NG" <<endl; } cin>>n>>m>>p>>q; } return (0); } |
ステータス
項目 | データ |
---|---|
問題 | 0007 - あみだくじ |
ユーザー名 | ei2225 |
投稿日時 | 2024-03-29 14:25:38 |
言語 | C++17 |
状態 | Accepted |
得点 | 30 |
ソースコード長 | 1460 Byte |
最大実行時間 | 35 ms |
最大メモリ使用量 | 576 KB |
セット
セット | 得点 | Cases | |
---|---|---|---|
1 | ALL | 30 / 30 | * |
テストケース
ファイル名 | 状態 | 実行時間 | メモリ使用量 | # |
---|---|---|---|---|
B1 | AC | 28 ms | 476 KB |
1
|
B2 | AC | 35 ms | 576 KB |
1
|
B3 | AC | 24 ms | 540 KB |
1
|
B4 | AC | 22 ms | 508 KB |
1
|