結果
| 問題 | No.3722 Blended Taste |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-09-19 14:35:03 |
| 言語 | C++23(gcc16) (gcc 16.1.0 + boost 1.92.0 + ACL) |
| 結果 |
WA
不安定
|
| 実行時間 | - |
| コード長 | 1,465 bytes |
| 記録 | |
| コンパイル時間 | 3,079 ms |
| コンパイル使用メモリ | 361,140 KB |
| 実行使用メモリ | 10,032 KB |
| 最終ジャッジ日時 | 2026-09-19 14:35:25 |
| 合計ジャッジ時間 | 7,672 ms |
|
ジャッジサーバーID (参考情報) |
judge2_0 / judge4_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 37 WA * 4 |
ソースコード
#line 1 "codes/Libraries/Core.hpp"
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ull = unsigned long long;
#define rep(i,n) for(int i=0; i<n; i++)
#define rrep(i,n,s) for (int i=s; i<n; i++)
#line 2 "codes/B.cpp"
vector<vector<int>> solve(int n,int m,int k){
vector ans(n,vector<int>(n,-1));
vector<int> count(m,n*n/m);
rep(i,n){
rep(j,n){
if(i%k*k+j%k<m){
ans[i][j]=i%k*k+j%k+1;
count[i%k*k+j%k]--;
}
}
}
int now=0;
rep(i,n){
rep(j,n){
while(now<m&&count[now]==0)now++;
if(ans[i][j]==-1){
ans[i][j]=now+1;
count[now]--;
}
}
}
return ans;
}
bool check(int n,int m,int k,vector<vector<int>> answer){
rep(i,n-k+1){
rep(j,n-k+1){
vector<bool> ok(m,false);
int ng=m;
rep(a,k){
rep(b,k){
if(!ok[answer[i+a][j+b]-1]){
ng--;
ok[answer[i+a][j+b]-1]=true;
}
}
}
if(ng>0)return false;
}
}
return true;
}
int main(){
int n,m,k;
cin>>n>>m>>k;
auto ans=solve(n,m,k);
rep(i,n){
rep(j,n){
if(j)cout<<" ";
cout<<ans[i][j];
}
cout<<endl;
}
return 0;
srand(54307);
while(true){
int n=rand()%99+1;
int k;
if(n>1)k=rand()%(n-1)+1;
else k=1;
vector<int> yaku;
for(int i=1;i*i<=n&&i*i<=k;i++){
if(n%i==0){
yaku.push_back(i);
if(i*i!=n&&n/i<=k)yaku.push_back(n/i);
}
}
int m=yaku[rand()%yaku.size()];
if(!check(n,m,k,solve(n,m,k))){
cout<<format("{} {} {}",n,m,k)<<flush;
return 0;
}
}
}