联考 T2 求助 WA #8
查看原帖
联考 T2 求助 WA #8
540363
AKPC楼主2024/11/4 14:27

用考场上 AC 代码稍微改一下然后 WA 了 /ll

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define fr first
#define sc second
inline int read(){
    int res=0,f=1;char c=getchar();
    while (c<'0'||c>'9') {if (c=='-') f=-1;c=getchar();}
    while (c>='0'&&c<='9') {res=res*10+(c-'0');c=getchar();}
    return res*f;
}
const int N=505;
int n,k,vis[N][N][N];
signed main(){
    // freopen("pixel.in","r",stdin);
    // freopen("pixel.out","w",stdout);
    n=read(),k=read();
    if (k==1){
        cout<<"0 0 0\n";
        return 0;
    }
    if (k==2){
        cout<<"0 0 0\n1 1 1\n";
        return 0;
    }
    if (k==3){
        cout<<"0 0 1\n0 1 0\n1 0 0\n";
        return 0;
    }
    int t=0;
    for (int i=2;i<=n&&!t;i++)
        if (i*i<=k&&k<=i*i*i)
            t=i;
    n=t;
    for (int y=1;y<=n;y++)
        for (int z=1;z<=n;z++){
            int x=z+y-1;
            if (x>n) x-=n;
            cout<<x-1<<' '<<y-1<<' '<<z-1<<'\n';
            vis[x][y][z]=1;
        }
    k-=n*n;
    for (int x=1;x<=n&&k;x++)
        for (int y=1;y<=n&&k;y++)
            for (int z=1;z<=n&&k;z++)
                if (!vis[x][y][z])
                    cout<<x-1<<' '<<y-1<<' '<<z-1<<'\n',k--;
    return 0;
}
2024/11/4 14:27
加载中...