提出 #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
結果
AC × 49
セット名 テストケース
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