結果
| 問題 | No.142 単なる配列の操作に関する実装問題 |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2019-07-22 15:11:23 |
| 言語 | C (gcc 15.2.0) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 1,118 bytes |
| 記録 | |
| コンパイル時間 | 132 ms |
| コンパイル使用メモリ | 30,848 KB |
| 実行使用メモリ | 17,664 KB |
| 最終ジャッジ日時 | 2024-06-23 18:36:25 |
| 合計ジャッジ時間 | 2,241 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | RE * 5 |
コンパイルメッセージ
main.c: In function 'mask_and_xor':
main.c:28:23: warning: '__builtin_memcpy' writing between 4 and 17179869184 bytes into a region of size 0 overflows the destination [-Wstringop-overflow=]
28 | mini_arr[c-i] = arr[c];
| ~~~~~~~~~~~~~~^~~~~~~~
main.c:26:9: note: at offset -4 into destination object 'mini_arr' of size [0, 9223372036854775807]
26 | int mini_arr[length];
| ^~~~~~~~
ソースコード
#include <stdio.h>
int N,S,X,Y,Z;
void mk_arr_int (int arr[N]){
arr[0]=S;
int prev = S;
for(int i=1;N>i;i++){
prev = (X * prev + Y) % Z;
arr[i] = prev;
}
}
void mk_arr(int arr[N],int bool_arr[N]){
for(int i=0;N>i;i++){
if (arr[i]%2 == 0){
bool_arr[i] = 0;
}
else{
bool_arr[i] = 1;
}
}
}
void mask_and_xor(int arr[N],int i,int j,int m,int n){
int length = n-m;
int mini_arr[length];
for(int c=i-1;c<j;c++){
mini_arr[c-i] = arr[c];
}
for(int c=m-1;c<n;c++){
arr[c] = mini_arr[c-m] ^ arr[c];
}
}
int main(){
scanf("%d %d %d %d %d",&N,&S,&X,&Y,&Z);
int arr[N];
int bool_arr[N];
int Q;
int I,J,K,L;
scanf("%d",&Q);
mk_arr_int(arr);
mk_arr(arr,bool_arr);
for(int i=0;i<Q;i++){
scanf("%d %d %d %d",&I,&J,&K,&L);
mask_and_xor(bool_arr,I,J,K,L);
}
for(int i=0;i<N;i++){
if (bool_arr[i]==1){
printf("%s","O");
}
else{
printf("%s","E");
}
}
return 0;
}