結果
| 問題 | No.433 ICPC国内予選の選抜ルールがこんな感じだったらうれしい |
| コンテスト | |
| ユーザー |
IL_msta
|
| 提出日時 | 2017-03-12 14:14:43 |
| 言語 | C++11 (gcc 15.2.0 + boost 1.90.0) |
| 結果 |
AC
|
| 実行時間 | 35 ms / 4,000 ms |
| + 75µs | |
| コード長 | 1,543 bytes |
| 記録 | |
| コンパイル時間 | 1,276 ms |
| コンパイル使用メモリ | 150,356 KB |
| 実行使用メモリ | 7,168 KB |
| 最終ジャッジ日時 | 2026-07-16 11:35:46 |
| 合計ジャッジ時間 | 5,887 ms |
|
ジャッジサーバーID (参考情報) |
judge1_0 / judge3_1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 48 |
ソースコード
#pragma region GNUC
//https://yukicoder.me/wiki/auto_vectorization
#ifdef __GNUC__
#pragma GCC optimize ("O3")
#pragma GCC target ("avx")
#endif
#pragma endregion
#define _USE_MATH_DEFINES
#pragma region
#include <iostream>
#include <iomanip>
#include <stdio.h>
#include <sstream>
#include <algorithm>
#include <cmath>
#include <string>
#include <cstring>
#include <vector>
#include <tuple>
#include <queue>
#include <complex>
#include <set>
#include <map>
#include <stack>
#include <list>
#include <fstream>
#include <random>
#pragma endregion //#include
using namespace::std;
/////////////////////
typedef tuple<int,int,int,int> DATA;
void solve(){
int N,K;
scanf("%d%d",&N,&K);
vector< DATA > data0(N),data1(N);
for(int i=0;i<N;++i){
scanf("%d%d%d",&get<0>(data0[i]),&get<1>(data0[i]),&get<2>(data0[i]));
//get<0>(data0[i]) *= -1;
get<0>(data0[i]) = 10-get<0>(data0[i]);
get<3>(data0[i]) = i;
}
sort(data0.begin(),data0.end());
vector<int> univ(N,0);
for(int i=0;i<N;++i){
get<0>(data1[i]) = get<0>(data0[i]);
get<1>(data1[i]) = univ[ get<2>(data0[i]) ];
univ[ get<2>(data0[i]) ]++;
get<2>(data1[i]) = get<1>(data0[i]);
get<3>(data1[i]) = get<3>(data0[i]);
}
sort(data1.begin(), data1.end());
for(int i=0;i<K;++i){
printf("%d\n",get<3>(data1[i]) );
}
}
#pragma region main
signed main(void){
std::cin.tie(0);
std::ios::sync_with_stdio(false);
std::cout << std::fixed;//小数を10進数表示
cout << setprecision(16);//小数点以下の桁数を指定
solve();
}
#pragma endregion //main()
IL_msta