提出 #48269603
ソースコード 拡げる
// LUOGU_RID: 138682831
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef double db;
typedef long double ldb;
#define rep(i,l,r) for(int i(l);i<=(r);++i)
#define per(i,r,l) for(int i(r);i>=(l);--i)
#define eb emplace_back
#define File(filename) freopen(filename ".in","r",stdin),freopen(filename ".out","w",stdout)
#ifdef EXODUS
#define Debug(...) fprintf(stderr,__VA_ARGS__)
#else
#define Debug(...) 0
#endif
//=========================================================================================================
// Something about IO
template<typename T>
void read(T &x){
x=0;T flg=1;
char ch=getchar();
while(!isdigit(ch)){if(ch=='-')flg=-1;ch=getchar();}
while(isdigit(ch))x=(x<<3)+(x<<1)+(ch^48),ch=getchar();
x*=flg;
}
template<typename T,typename... Args>
void read(T &x,Args &...args){read(x),read(args...);}
//=========================================================================================================
// Define the global variables here.
bool membg=0;
bool memed=0;
//=========================================================================================================
// Code here.
constexpr int N=57;
int n,a[N];
vector<vector<int>>ans;
void print(vector<int>&p){
vector<int>cur(n);int val=0;
for(auto x:p)cur[x-1]=++val,a[x]+=val;
ans.eb(cur);
}
void solve(){
read(n);
for(int i=1;i<=n;i++)read(a[i]);
auto solve=[&](){
for(;;){
int x=max_element(a+1,a+n+1)-a,y=min_element(a+1,a+n+1)-a;
if(a[x]==a[y])break;
vector<int>p;p.eb(x),p.eb(y);
for(int i=1;i<=n;i++)
if(i!=x&&i!=y)p.eb(i);
print(p);
reverse(p.begin(),p.end());
p.pop_back();p.pop_back();
p.eb(x),p.eb(y);
print(p);
}
};
if(n&1){
if(accumulate(a+1,a+n+1,0)%n!=0){
printf("No\n");
}else{
solve();
printf("Yes\n");
printf("%d\n",(int)ans.size());
for(auto &perm:ans){
for(auto q:perm)printf("%d ",q);
printf("\n");
}
}
}else{
auto all=accumulate(a+1,a+n+1,0);
if(all%n==0){
solve();
printf("Yes\n");
printf("%d\n",(int)ans.size());
for(auto &perm:ans){
for(auto q:perm)printf("%d ",q);
printf("\n");
}
}else if(all%n==n/2){
vector<int>p(n);
iota(p.begin(),p.end(),1);
print(p);
solve();
printf("Yes\n");
printf("%d\n",(int)ans.size());
for(auto &perm:ans){
for(auto q:perm)printf("%d ",q);
printf("\n");
}
}else{
printf("No\n");
}
}
return;
}
//=========================================================================================================
int main(){
Debug("%.3lfMB\n",fabs(&memed-&membg)/1024.0/1024.0);
int timbg=clock();
int T=1;
while(T--)solve();
int timed=clock();
Debug("%.3lfs\n",1.0*(timed-timbg)/CLOCKS_PER_SEC);
fflush(stdout);
return 0;
}
提出情報
コンパイルエラー
Main.cpp: In function ‘int main()’:
Main.cpp:18:28: warning: statement has no effect [-Wunused-value]
18 | #define Debug(...) 0
| ^
Main.cpp:117:9: note: in expansion of macro ‘Debug’
117 | Debug("%.3lfMB\n",fabs(&memed-&membg)/1024.0/1024.0);
| ^~~~~
Main.cpp:18:28: warning: statement has no effect [-Wunused-value]
18 | #define Debug(...) 0
| ^
Main.cpp:122:9: note: in expansion of macro ‘Debug’
122 | Debug("%.3lfs\n",1.0*(timed-timbg)/CLOCKS_PER_SEC);
| ^~~~~
Main.cpp:118:13: warning: unused variable ‘timbg’ [-Wunused-variable]
118 | int timbg=clock();
| ^~~~~
Main.cpp:121:13: warning: unused variable ‘timed’ [-Wunused-variable]
121 | int timed=clock();
| ^~~~~
ジャッジ結果
| セット名 |
Sample |
All |
| 得点 / 配点 |
0 / 0 |
500 / 500 |
| 結果 |
|
|
| セット名 |
テストケース |
| Sample |
00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt |
| All |
00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_rnd_00.txt, 01_rnd_01.txt, 01_rnd_02.txt, 01_rnd_03.txt, 01_rnd_04.txt, 01_rnd_05.txt, 02_min_00.txt, 02_min_01.txt, 02_min_02.txt, 02_min_03.txt, 02_min_04.txt, 02_min_05.txt, 02_min_06.txt, 02_min_07.txt, 02_min_08.txt, 02_min_09.txt, 02_min_10.txt, 02_min_11.txt, 02_min_12.txt, 02_min_13.txt, 02_min_14.txt, 03_max_00.txt, 03_max_01.txt, 03_max_02.txt, 03_max_03.txt, 03_max_04.txt, 03_max_05.txt, 03_max_06.txt, 03_max_07.txt, 03_max_08.txt, 03_max_09.txt, 03_max_10.txt, 03_max_11.txt, 03_max_12.txt, 03_max_13.txt, 03_max_14.txt, 04_same_00.txt, 04_same_01.txt, 04_same_02.txt, 04_same_03.txt, 04_same_04.txt |
| ケース名 |
結果 |
実行時間 |
メモリ |
| 00_sample_00.txt |
AC |
1 ms |
3744 KiB |
| 00_sample_01.txt |
AC |
1 ms |
3528 KiB |
| 00_sample_02.txt |
AC |
1 ms |
3812 KiB |
| 01_rnd_00.txt |
AC |
1 ms |
3596 KiB |
| 01_rnd_01.txt |
AC |
1 ms |
3528 KiB |
| 01_rnd_02.txt |
AC |
1 ms |
3716 KiB |
| 01_rnd_03.txt |
AC |
1 ms |
3576 KiB |
| 01_rnd_04.txt |
AC |
1 ms |
3560 KiB |
| 01_rnd_05.txt |
AC |
1 ms |
3552 KiB |
| 02_min_00.txt |
AC |
1 ms |
3852 KiB |
| 02_min_01.txt |
AC |
1 ms |
3644 KiB |
| 02_min_02.txt |
AC |
1 ms |
3708 KiB |
| 02_min_03.txt |
AC |
1 ms |
3712 KiB |
| 02_min_04.txt |
AC |
1 ms |
3596 KiB |
| 02_min_05.txt |
AC |
1 ms |
3588 KiB |
| 02_min_06.txt |
AC |
1 ms |
3652 KiB |
| 02_min_07.txt |
AC |
1 ms |
3648 KiB |
| 02_min_08.txt |
AC |
1 ms |
3424 KiB |
| 02_min_09.txt |
AC |
1 ms |
3828 KiB |
| 02_min_10.txt |
AC |
1 ms |
3568 KiB |
| 02_min_11.txt |
AC |
1 ms |
3520 KiB |
| 02_min_12.txt |
AC |
1 ms |
3588 KiB |
| 02_min_13.txt |
AC |
1 ms |
3716 KiB |
| 02_min_14.txt |
AC |
1 ms |
3596 KiB |
| 03_max_00.txt |
AC |
4 ms |
4160 KiB |
| 03_max_01.txt |
AC |
1 ms |
3560 KiB |
| 03_max_02.txt |
AC |
2 ms |
3836 KiB |
| 03_max_03.txt |
AC |
2 ms |
3932 KiB |
| 03_max_04.txt |
AC |
2 ms |
3748 KiB |
| 03_max_05.txt |
AC |
4 ms |
3972 KiB |
| 03_max_06.txt |
AC |
1 ms |
3640 KiB |
| 03_max_07.txt |
AC |
1 ms |
3520 KiB |
| 03_max_08.txt |
AC |
1 ms |
3860 KiB |
| 03_max_09.txt |
AC |
2 ms |
3868 KiB |
| 03_max_10.txt |
AC |
4 ms |
4040 KiB |
| 03_max_11.txt |
AC |
3 ms |
3972 KiB |
| 03_max_12.txt |
AC |
3 ms |
3972 KiB |
| 03_max_13.txt |
AC |
1 ms |
3764 KiB |
| 03_max_14.txt |
AC |
2 ms |
3780 KiB |
| 04_same_00.txt |
AC |
1 ms |
3688 KiB |
| 04_same_01.txt |
AC |
1 ms |
3756 KiB |
| 04_same_02.txt |
AC |
1 ms |
3848 KiB |
| 04_same_03.txt |
AC |
1 ms |
3740 KiB |
| 04_same_04.txt |
AC |
1 ms |
3744 KiB |