結果
| 問題 | 
                            No.1338 Giant Class
                             | 
                    
| コンテスト | |
| ユーザー | 
                             | 
                    
| 提出日時 | 2021-01-15 21:52:01 | 
| 言語 | C++14  (gcc 13.3.0 + boost 1.87.0)  | 
                    
| 結果 | 
                             
                                AC
                                 
                             
                            
                         | 
                    
| 実行時間 | 237 ms / 2,000 ms | 
| コード長 | 1,125 bytes | 
| コンパイル時間 | 1,610 ms | 
| コンパイル使用メモリ | 175,548 KB | 
| 実行使用メモリ | 6,820 KB | 
| 最終ジャッジ日時 | 2024-11-26 14:15:35 | 
| 合計ジャッジ時間 | 5,556 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge4 / judge3 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 2 | 
| other | AC * 21 | 
ソースコード
#include <bits/stdc++.h>
#define rep(i,n) for(int i=0;i<(int)(n);i++)
#define chmin(x,y) x = min((x),(y));
#define chmax(x,y) x = max((x),(y));
using namespace std;
using ll = long long ;
using P = pair<int,int> ;
using pll = pair<long long,long long>;
const int INF = 1e9;
const long long LINF = 1e17;
const int MOD = 1000000007;
//const int MOD = 998244353;
const double PI = 3.14159265358979323846;
template<typename T>
vector<T> compress(vector<T> &a){
    vector<T> val = a;
    int n = (int)a.size();
    sort(val.begin(),val.end());
    val.erase(unique(val.begin(),val.end()),val.end());
    for(int i=0;i<n;i++){
        a[i] = lower_bound(val.begin(),val.end(),a[i]) - val.begin();
    }
    return val;
}
int main(){
    ll h,w,q;
    cin >> h >> w >> q;
    vector<ll> y(q),x(q);
    rep(i,q){
        cin >> y[i] >> x[i];
        --y[i];--x[i];
    }
    vector<ll> val = compress(x);
    vector<ll> ok(val.size(),h);
    ll ans = h*w;
    rep(i,q){
        if(ok[x[i]] >= y[i]){
            ans -= ok[x[i]] - y[i];
            ok[x[i]] = y[i];
        }
        cout << ans << endl;
    }
    
    return 0;
}