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 |
|
|
|
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 |