记录编号 |
485468 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[SDOI 2012 DAY2]集合 |
最终得分 |
100 |
用户昵称 |
Shirry |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
1.061 s |
提交时间 |
2018-01-31 15:42:37 |
内存使用 |
6.34 MiB |
显示代码纯文本
#include<cstdio>
#include<cstring>
#include<algorithm>
#define inf (int)1e9
using namespace std;
const int maxn=500010;
int n,m,d,q,ans,b[maxn];
char s[20];
struct poi{int u,v,w;}p[maxn];
bool operator < (poi x,poi y){return x.w<y.w;}
int ask(int x,int y){
for(int i=1;i<=m;i++){
if(b[p[i].u]==x&&b[p[i].v]==y)return p[i].w;
if(b[p[i].v]==x&&b[p[i].u]==y)return p[i].w;
}
return inf;
}
int main(){
freopen("seta.in","r",stdin);
freopen("seta.out","w",stdout);
scanf("%d%d",&n,&m);
for(int i=1;i<=m;i++)scanf("%d%d%d",&p[i].u,&p[i].v,&p[i].w);
sort(p+1,p+1+m);
scanf("%d",&q);
while(q--){
scanf("%s",s+1);
if(s[1]=='A'){
ans=ask(s[4]-'A',s[5]-'A');
if(ans==inf)printf("No Found!\n");
else printf("%d\n",ans);
}
else{
scanf("%d",&d);
b[d]=s[5]-'A';
}
}
return 0;
}