Submission #1353076

#TimeUsernameProblemLanguageResultExecution timeMemory
1353076hsuan._.0528PPP (EGOI23_ppp)C++20
100 / 100
328 ms70404 KiB
// pB
#include<bits/stdc++.h>
using namespace std;
#define LL long long
#define pii pair<LL, LL>
#define S second
#define F first
const int maxn = 5e5+10;

int n, m;

int idx=0; //編號
map<int, int> mp; //編號對應實際
int id[maxn]; // 現在編號

vector<pii> v[maxn];
set<pii> st;
int cnt[maxn];
int ans[maxn];

int vis[maxn];


void dfs(int xx, int now){

    if(!st.empty()){
        auto it = prev(st.end());
        ans[ -(it->S) ]++;
    }
    if(vis[xx] == 0)  return;
    vis[xx]=0;
    int x = mp[xx];

 //   cout<<xx<<" "<<x<<" / "<<-(it->S)<<" "<<it->F<<"\n";
    for(auto[y, lastime] : v[xx]){

        if(cnt[x]!=0)  st.erase( make_pair(cnt[x], -x) );
        cnt[x]+=now-lastime;
        st.insert( make_pair(cnt[x], -x) );

        dfs(y, lastime);

        st.erase( make_pair(cnt[x], -x) );
        cnt[x]-=now-lastime;
        if(cnt[x]!=0)  st.insert( make_pair(cnt[x], -x) );
    }

}

signed main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    cin>>n>>m;
//    memset(vis, 1, sizeof(vis) );
    for(int i=0; i<n; i++)  id[i]=i, mp[i]=i;
    idx=n;
    for(int i=0; i<m; i++){
        int x, y;  cin>>x>>y;
        vis[ id[x] ] = 2;
        vis[ id[y] ] = 1;
      //  t[ id[x] ] = i;
        v[ id[x] ].push_back( {id[y], i} );
      //  cout<<id[x]<<" "<<id[y]<<"\n";
        id[y] = idx++;
        mp[ id[y] ] = y;
    }
    for(int i=0; i<idx; i++)
        if(vis[i]==2)  dfs(i, m);

    for(int i=0; i<n; i++)  cout<<ans[i]<<" ";
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...