Submission #1244522


Source Code Expand

#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
#include <stack>
#include <map>
#include <cstdio>
#include <math.h>
#include <utility>
#include <list>
#include <functional>
#include <queue>
using namespace std;

#define ll long long
#define vecint vector<int>
#define Pii pair<int, int>

#define REP(i,x,n) for(int i=x;i<n;i++)
#define rep(i,n) REP(i,0,n)
#define print(a) cout << a << endl

#define MOD 1000000007
#define NIL -1

int N,M,Q;

int par[100000];
int depth[100000];
int cnt[100000];

vector<pair<int,pair<int,int>>> e;

vector<pair<int,pair<int,int>>> q;

int ans[100000];

void init(int n){
    rep(i,n){
        par[i]=i;
        depth[i]=0;
        cnt[i]=1;
    }
}

int find(int x){
    if(par[x]==x) return x;
    else return par[x]=find(par[x]);
}

void unit(int x,int y){
    x=find(x);
    y=find(y);
    if(x==y) return;
    if(depth[x]>depth[y]){
        par[y]=x;
        cnt[x]+=cnt[y];
    }else{
        par[x]=y;
        if(depth[x]==depth[y]) depth[y]++;
        cnt[y]+=cnt[x];
    }
}


void solve(){
    init(N);
    sort(e.begin(),e.end());
    sort(q.begin(),q.end());
    reverse(e.begin(),e.end());
    reverse(q.begin(),q.end());
    int j=0;
    rep(i,Q){
        while(e[j].first>q[i].first) {
//            printf("cost%d:%d cost%d:%d\n", j,e[j].first, i,q[i].first);
            unit(e[j].second.first, e[j].second.second);
            j++;
        }
        ans[q[i].second.second]=cnt[find(q[i].second.first)];
    }
    rep(i,Q){
        print(ans[i]);
    }
    return;
}



int main(){
    cin>>N>>M;
    rep(i,M){
        int x,y,cost;
        cin>>x>>y>>cost;
        x--;y--;
        e.push_back(make_pair(cost,make_pair(x,y)));
    }
    cin>>Q;
    rep(i,Q){
        int start,cost;
        cin>>start>>cost;
        start--;
        q.push_back(make_pair(cost,make_pair(start,i)));
    }
    solve();
    return 0;
}

Submission Info

Submission Time
Task D - 道路の老朽化対策について
User maxi
Language C++14 (GCC 5.4.1)
Score 100
Code Size 2005 Byte
Status AC
Exec Time 481 ms
Memory 7920 KB

Judge Result

Set Name Sample Subtask1 All
Score / Max Score 0 / 0 50 / 50 50 / 50
Status
AC × 3
AC × 10
AC × 22
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
Subtask1 sample_01.txt, sample_02.txt, sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt
All sample_01.txt, sample_02.txt, sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt, subtask2_12.txt
Case Name Status Exec Time Memory
sample_01.txt AC 1 ms 256 KB
sample_02.txt AC 1 ms 256 KB
sample_03.txt AC 1 ms 256 KB
subtask1_01.txt AC 5 ms 384 KB
subtask1_02.txt AC 5 ms 384 KB
subtask1_03.txt AC 6 ms 384 KB
subtask1_04.txt AC 4 ms 256 KB
subtask1_05.txt AC 5 ms 384 KB
subtask1_06.txt AC 5 ms 384 KB
subtask1_07.txt AC 5 ms 384 KB
subtask2_01.txt AC 442 ms 7280 KB
subtask2_02.txt AC 458 ms 7280 KB
subtask2_03.txt AC 476 ms 7920 KB
subtask2_04.txt AC 480 ms 7280 KB
subtask2_05.txt AC 320 ms 4212 KB
subtask2_06.txt AC 419 ms 7408 KB
subtask2_07.txt AC 444 ms 7408 KB
subtask2_08.txt AC 442 ms 7408 KB
subtask2_09.txt AC 480 ms 7280 KB
subtask2_10.txt AC 481 ms 7280 KB
subtask2_11.txt AC 477 ms 7152 KB
subtask2_12.txt AC 471 ms 7024 KB