結果
| 問題 |
No.100 直列あみだくじ
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2014-12-11 23:23:22 |
| 言語 | C90 (gcc 12.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,159 bytes |
| コンパイル時間 | 449 ms |
| コンパイル使用メモリ | 21,120 KB |
| 実行使用メモリ | 6,944 KB |
| 最終ジャッジ日時 | 2024-06-11 20:38:49 |
| 合計ジャッジ時間 | 1,499 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 41 WA * 4 |
コンパイルメッセージ
main.c: In function ‘main’:
main.c:39:9: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
39 | scanf("%d",&N);for(i=0;i<N;i++)scanf("%d",A+i);puts(M(0,N)%2?"No":"Yes");
| ^~~~~~~~~~~~~~
main.c:39:40: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
39 | scanf("%d",&N);for(i=0;i<N;i++)scanf("%d",A+i);puts(M(0,N)%2?"No":"Yes");
| ^~~~~~~~~~~~~~~
ソースコード
#include <stdio.h>
int A[999999],W[999999];
long long M(int l,int r){
if(l+1>=r)return 0;
if(l+2==r){
if(A[l]<=A[l+1])return 0;
int z=A[l];A[l]=A[l+1];A[l+1]=z;
return 1;
}
int m = (l+r)/2,i=l, j=m, k=l;
long long cl=M(l, m),cr=M(m,r),c=0;
while(i<m&&j<r){
if(A[i]<=A[j])W[k++]=A[i++];
else{
W[k++]=A[j++];
c+=m-i;
}
}
while(i<m)W[k++]=A[i++];
while(j<r)W[k++]=A[j++];
for(i=l;i<r;i++)A[i]=W[i];
return cl+cr+c;
}
int main(){
int T,i,N;
//PKU2299,aizu0167
//for(;scanf("%d",&N),N;printf("%lld\n",M(0,N)))for(i=0;i<N;i++)scanf("%d",A+i);
//hackerrank~runningtime
//scanf("%d",&N);for(i=0;i<N;i++)scanf("%d",A+i);printf("%lld\n",M(0,N));
//spojINVCNT,hackerrank~insertionsort
//for(scanf("%d",&T);T--;printf("%lld\n",M(0,N)))for(scanf("%d",&N),i=0;i<N;++i)scanf("%d",A+i);
//codeiq432
//codeiq1145
//for(N=0;~scanf("%d",A+N);N++);printf("%lld\n",M(0,N));
//kcs1009K
//for(i=0;~(N=getchar());)if('0'<N&&N<'9')A[i++]=N-'0';
//puts(M(0,i)%2?"lmpossible":"Possible"); //"l"? lol!
//yukicoder100
scanf("%d",&N);for(i=0;i<N;i++)scanf("%d",A+i);puts(M(0,N)%2?"No":"Yes");
return 0;
}