提出 #577414
ソースコード 拡げる
#include<cstdio>
#include<algorithm>
#include<vector>
#include<queue>
#include<stack>
#include<set>
#include<map>
#include<cmath>
#include<cstdlib>
#include<string>
#include<cstring>
using namespace std;
char in[2100];
int N;
int M;
struct wolf{
int f[11000];
int v[11000];
wolf(){
for(int i=0;i<N;i++)f[i]=i;
}
wolf operator+(const wolf &a)const{
wolf ret;
for(int i=0;i<N;i++)ret.f[i]=a.f[f[i]];
return ret;
}
};
int v[11000];
int lis[11000];
wolf tm(wolf a,int b){
wolf ret;
for(int i=0;i<N;i++){
v[i]=0;
}
for(int i=0;i<N;i++){
if(v[i])continue;
int at=i;
int sz=0;
while(!v[at]){
v[at]=1;
lis[sz++]=at;
at=a.f[at];
}
for(int j=0;j<sz;j++){
ret.f[lis[j]]=lis[(j+b)%sz];
}
}
return ret;
}
wolf expr();
int cur;
int num(){
int ret=0;
while('0'<=in[cur]&&in[cur]<='9'){
ret*=10;
ret+=in[cur]-'0';
cur++;
}
return ret;
}
wolf term(){
if(in[cur]=='('){
cur++;
wolf ret=expr();
cur++;
int t=num();
return tm(ret,t);
}
char type=in[cur];
cur++;
int r=num();
r--;
wolf ret;
if(type=='L'){
for(int i=0;i<M;i++){
ret.f[M*r+i]=M*r+(i+M-1)%M;
}
}
if(type=='R'){
for(int i=0;i<M;i++){
ret.f[M*r+i]=M*r+(i+1)%M;
} }
if(type=='U'){
for(int i=0;i<M;i++){
ret.f[r+i*M]=r+(i+M-1)%M*M;
}
}
if(type=='D'){
for(int i=0;i<M;i++){
ret.f[r+i*M]=r+(i+1)%M*M;
}
}
return ret;
}
wolf expr(){
wolf ret=term();
while(in[cur]&&in[cur]!=')'){
wolf tmp=term();
ret=ret+tmp;
}
return ret;
}
int c[110][110];
int main(){
int a,b;
scanf("%d%d",&a,&b);
N=a*a;
M=a;
scanf("%s",in);
wolf ret=expr();
for(int i=0;i<N;i++)c[ret.f[i]/M][ret.f[i]%M]=i+1;
for(int i=0;i<a;i++){
for(int j=0;j<a;j++){
if(j)printf(" ");
printf("%d",c[i][j]);
}
printf("\n");
}
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | E - Shifting a Matrix |
| ユーザ | Operasan |
| 言語 | C++11 (GCC 4.8.1) |
| 得点 | 100 |
| コード長 | 1878 Byte |
| 結果 | AC |
| 実行時間 | 147 ms |
| メモリ | 45084 KiB |
コンパイルエラー
./Main.cpp: In function ‘int main()’:
./Main.cpp:106:21: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d%d",&a,&b);
^
./Main.cpp:109:16: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%s",in);
^
ジャッジ結果
| セット名 | All | ||
|---|---|---|---|
| 得点 / 配点 | 100 / 100 | ||
| 結果 |
|
| セット名 | テストケース |
|---|---|
| All | 00_sample_00, 00_sample_01, 00_sample_02, 10_basic_rnd_small_000, 10_basic_rnd_small_001, 10_basic_rnd_small_002, 10_basic_rnd_small_003, 10_basic_rnd_small_004, 11_basic_rnd_med_000, 11_basic_rnd_med_001, 11_basic_rnd_med_002, 11_basic_rnd_med_003, 11_basic_rnd_med_004, 12_basic_rnd_med_000, 12_basic_rnd_med_001, 12_basic_rnd_med_002, 12_basic_rnd_med_003, 12_basic_rnd_med_004, 13_basic_rnd_large_000, 13_basic_rnd_large_001, 13_basic_rnd_large_002, 13_basic_rnd_large_003, 13_basic_rnd_large_004, 13_basic_rnd_large_005, 13_basic_rnd_large_006, 13_basic_rnd_large_007, 13_basic_rnd_large_008, 13_basic_rnd_large_009, 23_many_loop_rnd_large_000, 23_many_loop_rnd_large_001, 23_many_loop_rnd_large_002, 23_many_loop_rnd_large_003, 23_many_loop_rnd_large_004, 23_many_loop_rnd_large_005, 23_many_loop_rnd_large_006, 23_many_loop_rnd_large_007, 23_many_loop_rnd_large_008, 23_many_loop_rnd_large_009, 33_low_loop_large_000, 33_low_loop_large_001, 33_low_loop_large_002, 33_low_loop_large_003, 33_low_loop_large_004, 33_low_loop_large_005, 33_low_loop_large_006, 33_low_loop_large_007, 33_low_loop_large_008, 33_low_loop_large_009, 90_challenge_00 |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 00_sample_00 | AC | 25 ms | 792 KiB |
| 00_sample_01 | AC | 24 ms | 1048 KiB |
| 00_sample_02 | AC | 24 ms | 1044 KiB |
| 10_basic_rnd_small_000 | AC | 26 ms | 1500 KiB |
| 10_basic_rnd_small_001 | AC | 25 ms | 1432 KiB |
| 10_basic_rnd_small_002 | AC | 26 ms | 888 KiB |
| 10_basic_rnd_small_003 | AC | 25 ms | 1172 KiB |
| 10_basic_rnd_small_004 | AC | 25 ms | 1312 KiB |
| 11_basic_rnd_med_000 | AC | 28 ms | 2212 KiB |
| 11_basic_rnd_med_001 | AC | 28 ms | 2848 KiB |
| 11_basic_rnd_med_002 | AC | 28 ms | 2848 KiB |
| 11_basic_rnd_med_003 | AC | 26 ms | 2076 KiB |
| 11_basic_rnd_med_004 | AC | 28 ms | 2464 KiB |
| 12_basic_rnd_med_000 | AC | 25 ms | 1828 KiB |
| 12_basic_rnd_med_001 | AC | 27 ms | 1568 KiB |
| 12_basic_rnd_med_002 | AC | 24 ms | 1704 KiB |
| 12_basic_rnd_med_003 | AC | 26 ms | 1696 KiB |
| 12_basic_rnd_med_004 | AC | 26 ms | 1692 KiB |
| 13_basic_rnd_large_000 | AC | 49 ms | 8728 KiB |
| 13_basic_rnd_large_001 | AC | 46 ms | 7592 KiB |
| 13_basic_rnd_large_002 | AC | 48 ms | 7972 KiB |
| 13_basic_rnd_large_003 | AC | 54 ms | 8996 KiB |
| 13_basic_rnd_large_004 | AC | 55 ms | 9952 KiB |
| 13_basic_rnd_large_005 | AC | 55 ms | 10020 KiB |
| 13_basic_rnd_large_006 | AC | 50 ms | 9884 KiB |
| 13_basic_rnd_large_007 | AC | 47 ms | 8224 KiB |
| 13_basic_rnd_large_008 | AC | 45 ms | 7460 KiB |
| 13_basic_rnd_large_009 | AC | 50 ms | 7584 KiB |
| 23_many_loop_rnd_large_000 | AC | 49 ms | 10020 KiB |
| 23_many_loop_rnd_large_001 | AC | 52 ms | 11172 KiB |
| 23_many_loop_rnd_large_002 | AC | 59 ms | 12964 KiB |
| 23_many_loop_rnd_large_003 | AC | 62 ms | 13472 KiB |
| 23_many_loop_rnd_large_004 | AC | 51 ms | 11044 KiB |
| 23_many_loop_rnd_large_005 | AC | 52 ms | 11680 KiB |
| 23_many_loop_rnd_large_006 | AC | 52 ms | 11816 KiB |
| 23_many_loop_rnd_large_007 | AC | 58 ms | 11044 KiB |
| 23_many_loop_rnd_large_008 | AC | 61 ms | 12976 KiB |
| 23_many_loop_rnd_large_009 | AC | 62 ms | 13216 KiB |
| 33_low_loop_large_000 | AC | 45 ms | 3236 KiB |
| 33_low_loop_large_001 | AC | 48 ms | 3496 KiB |
| 33_low_loop_large_002 | AC | 36 ms | 3484 KiB |
| 33_low_loop_large_003 | AC | 34 ms | 2856 KiB |
| 33_low_loop_large_004 | AC | 45 ms | 4260 KiB |
| 33_low_loop_large_005 | AC | 38 ms | 3756 KiB |
| 33_low_loop_large_006 | AC | 39 ms | 2728 KiB |
| 33_low_loop_large_007 | AC | 43 ms | 3368 KiB |
| 33_low_loop_large_008 | AC | 41 ms | 3620 KiB |
| 33_low_loop_large_009 | AC | 43 ms | 3876 KiB |
| 90_challenge_00 | AC | 147 ms | 45084 KiB |