結果
| 問題 |
No.1708 Quality of Contest
|
| コンテスト | |
| ユーザー |
forest3
|
| 提出日時 | 2021-11-13 18:07:01 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 219 ms / 2,000 ms |
| コード長 | 892 bytes |
| コンパイル時間 | 1,746 ms |
| コンパイル使用メモリ | 179,600 KB |
| 実行使用メモリ | 18,200 KB |
| 最終ジャッジ日時 | 2024-11-27 16:43:47 |
| 合計ジャッジ時間 | 7,864 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 23 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
int main()
{
int N, M;
long long X;
cin >> N >> M >> X;
vector<vector<int>> g( M );
for( int i = 0; i < N; i++ ) {
int A, B;
cin >> A >> B;
B--;
g[B].push_back( A );
}
int K;
cin >> K;
vector<int> C( K );
for( int i = 0; i < K; i++ ) cin >> C[i];
for( int i = 0; i < M; i++ ) {
if( g[i].size() == 0 ) continue;
sort( g[i].begin(), g[i].end(), greater<int>() );
}
vector<long long> v;
for( int i = 0; i < M; i++ ) {
int n = g[i].size();
if( n == 0 ) continue;
for( int j = 0; j < n; j++ ) {
long long a = g[i][j];
if( j == 0 ) a += X;
v.push_back( a );
}
}
sort( v.begin(), v.end(), greater<long long>() );
vector<long long> acc( N + 1 );
for( int i = 0; i < N; i++ ) acc[i + 1] = acc[i] + v[i];
long long ans = 0;
for( int i = 0; i < K; i++ ) {
ans += acc[ C[i] ];
}
cout << ans << endl;
}
forest3