結果
| 問題 |
No.5007 Steiner Space Travel
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2022-07-30 14:37:39 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 4,812 bytes |
| コンパイル時間 | 1,476 ms |
| 実行使用メモリ | 3,624 KB |
| スコア | 0 |
| 最終ジャッジ日時 | 2022-07-30 14:37:51 |
| 合計ジャッジ時間 | 10,996 ms |
|
ジャッジサーバーID (参考情報) |
judge10 / judge12 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | WA * 30 |
ソースコード
#include <bits/stdc++.h>
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
#define rep3(i, n, m) for (int i = m; i < (int)(n); i++)
#define repr(i, n) for (int i = n-1; i >= 0; i--)
#define all(v) v.begin(), v.end()
#define SP << " "
#define ll long long
using namespace std;
//定数周り
int imax=2147483647;
ll lmax=9223372036854775807;
//焼きなましの定数
double TIME_LIMIT=980;
double start_temp=2000.0;
double end_temp=10.0;
//入力など
int n, m;
int a[100], b[100];
int c[8], d[8];
int v=100;
vector<int> t(100), r(100);
//乱数の準備
int seed=1;
//auto seed=(unsigned)time(NULL);
mt19937_64 mt(seed);
void inpt(){
cin>> n >> m;
rep(i, 100){
cin>> a[i] >> b[i];
// a[i]=mt()%1001;
// b[i]=mt()%1001;
}
}
void init(){
rep(i, 100){
t[i]=1;
r[i]=i+1;
}
shuffle(all(r), mt);
rep(i, 8){
c[i]=mt()%1001;
d[i]=mt()%1001;
}
}
//初回用スコアの計算
// void init_score(){
// rep(i, n){
// // cout<< "(x, y)= " << x[i] SP << y[i] <<endl;
// // cout<< x[i]/(20000/sec)+sec/2 SP << y[i]/(20000/sec)+sec/2 <<endl;
// //bo[int((x[i]+10000)/20000.0*(sec))][int((y[i]+10000)/20000.0*(sec))]++;
// int xx, yy;
// rep(j, sec){
// if((py[j]-y[i])*(py[j+1]-y[i])<=0){
// xx=j+1;
// break;
// }
// }
// rep(j, sec){
// if((px[j+sec+1]-x[i])*(px[j+sec+2]-x[i])<=0){
// yy=j+1;
// break;
// }
// }
// // if(xx<0 || sec<xx || yy<0 || sec<<yy){
// // d[1]=100000000;
// // }else{
// // bo[xx][yy]++;
// // }
// bo[xx][yy]++;
// }
// rep(i, sec+1) rep(j, sec+1) d[bo[i][j]]++;
// // rep(i, sec+1){
// // rep(j, sec+1){
// // cout<< bo[i][j] SP;
// // }
// // cout<< endl;
// // }
// // rep(i, 5001){
// // if(d[i]) cout<< "(i, cnt)= " << i SP << d[i] <<endl;
// // }
// }
// void score(){
// int cor=0;
// int ev=0;
// rep3(i, 11, 1){
// cor+=min(a[i], d[i]);
// //cor-=abs(a[i]-d[i]);
// }
// rep3(i, 50, 11){
// ev+=d[i]*i*i;
// cor-=d[i];
// }
// psco=round(1000000.0*cor/sua);
// pev=ev;
// }
void print_ans(){
rep(i, 8) cout<< c[i] SP << d[i] <<endl;
cout<< t.size() <<endl;
rep(i, t.size()) cout<< t[i] SP << r[i] <<endl;
}
int main(){
//開始時間の計測
std::chrono::system_clock::time_point start, current;
start = chrono::system_clock::now();
//入力
inpt();
//初期状態の計算
init();
print_ans();
return 0;
//焼きなまし
int lp=0;
// while (true) { // 時間の許す限り回す
// lp++;
// //cout<< lp <<endl;
// current = chrono::system_clock::now(); // 現在時刻
// if (chrono::duration_cast<chrono::milliseconds>(current - start).count() > TIME_LIMIT) break;
// //if(lp==20000) break;
// int type=mt()%2+1;
// int idx;
// int mvp;
// int mvm;
// int del;
// if(type==1){
// //横の線(1~sec-1)をずらす
// idx=mt()%(sec-1)+1;
// mvp=(py[idx+1]-py[idx])/5;
// mvm=(py[idx]-py[idx-1])/5;
// del=mt()%(mvp+mvm)-mvm;
// py[idx]+=del;
// qy[idx]+=del;
// }else{
// //縦の線(横の線+sec)をずらす
// idx=mt()%(sec-1)+2+sec;
// mvp=(px[idx+1]-px[idx])/5;
// mvm=(px[idx]-px[idx-1])/5;
// del=mt()%(mvp+mvm)-mvm;
// px[idx]+=del;
// qx[idx]+=del;
// }
// // cout<< "idx=" << idx <<endl;
// // cout<< "mvp=" << mvp <<endl;
// // cout<< "mvm=" << mvm <<endl;
// // cout<< "del=" << del <<endl;
// rep(i, 60) rep(j, 60) bo[i][j]=0;
// rep(i, 50) d[i]=0;
// init_score();
// score();
// // 温度関数
// double temp = start_temp + (end_temp - start_temp) * chrono::duration_cast<chrono::milliseconds>(current - start).count() / TIME_LIMIT;
// // 遷移確率関数(最大化の場合)
// double prob = exp((psco-nsco)/temp);
// if (prob > (mt()%imax)/(double)imax) { // 確率probで遷移する
// //if (nsco<psco) {
// nsco=psco;
// nev=pev;
// }else{
// if(type==1){
// py[idx]-=del;
// qy[idx]-=del;
// }else{
// px[idx]-=del;
// qx[idx]-=del;
// }
// }
// }
print_ans();
return 0;
}