結果

問題 No.529 帰省ラッシュ
ユーザー vjudge1
提出日時 2025-03-15 17:35:35
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
WA  
実行時間 -
コード長 1,598 bytes
コンパイル時間 1,957 ms
コンパイル使用メモリ 168,852 KB
実行使用メモリ 28,636 KB
最終ジャッジ日時 2025-03-15 17:35:48
合計ジャッジ時間 12,327 ms
ジャッジサーバーID
(参考情報)
judge1 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 2 WA * 4 RE * 4 TLE * 1 -- * 7
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
using namespace std;
inline int read(){
	int x=0,f=1;char ch=getchar();
	while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
	while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
	return x*f;
}
inline void print(int x){
	static int s[20],t=0;
	do s[++t]=x%10,x/=10;while(x);
	while(t) putchar(s[t--] + '0');
}
const int N=1e5+5;
struct edge{
    int v,id;
};
int n,m,q;
priority_queue<int> a[N];
bool vis[N];
vector<edge> g[N];
int dfs(int u,int t,int mx){
    int ret=0;
    if(a[u].top()>a[mx].top())mx=u;
    if(u==t)ret=mx;
    for(edge i:g[u]){
        int v=i.v;
        if(vis[i.id])continue;
        vis[i.id]=1;
        ret=max(ret,dfs(v,t,mx));
    }
    return ret;
}
int calc(int x,int y){
    memset(vis,0,sizeof(vis));
    int t=dfs(x,y,0),tt=a[t].top();
    if(tt!=-1)a[t].pop();
    return tt;
}
signed main(){
//    freopen("visit.in","r",stdin);
//    freopen("visit.out","w",stdout);
    cin>>n>>m>>q;
    for(int i=1;i<=m;i++){
        int u=read(),v=read();
        g[u].push_back({v,i});
        g[v].push_back({u,i});
    }
    for(int i=0;i<=n;i++)
        a[i].push(-1);
    while(q--){
        int op=read(),x=read(),y=read();
        if(op==1)
            a[x].push(y);
        else cout<<calc(x,y)<<"\n";
    }
    return 0;
}
// ?????????????????????????
// ??????????????????
// ????????????????????????????????????
// ???????????????????????????????
// ????????????
// ????????????
// ????????????
// ????????????????????
// ????????????????????
// ????????????????????????????????
// ???????????????????????
// ???????????
// ?????????????
0