QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#740682 | #9623. 合成大西瓜 | bruteforce_# | WA | 0ms | 3772kb | C++20 | 1.8kb | 2024-11-13 11:06:38 | 2024-11-13 11:06:39 |
Judging History
answer
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e6+7,inf=1e18,mod=998244353;
vector<set<array<int,2>>> e;
void O_o()
{
int n,m;
cin>>n>>m;
e.assign(n+1,{});
vector<int> a(n+1);
priority_queue<array<int,2>> q;
vector<bool> bz(n+1,1);
for(int i=1; i<=n; i++)
{
cin>>a[i];
q.push({a[i],i});
}
for(int i=1; i<=m; i++)
{
int x,y;
cin>>x>>y;
e[x].insert({a[y],y});
e[y].insert({a[x],x});
}
while(q.size())
{
auto [_,u]=q.top(); q.pop();
if(bz[u]==0||e[u].size()<2)
continue;
vector<int> p;
for(auto [_,v]:e[u])
{
p.push_back(v);
}
sort(p.begin(),p.end());
p.erase(unique(p.begin(),p.end()),p.end());
e[u].clear();
for(auto v:p)
{
e[u].insert({a[v],v});
}
while(e[u].size()>=2)
{
int x=-1,y=-1;
while(e[u].size()&&!bz[(*e[u].begin())[1]])
e[u].erase(e[u].begin());
x=(*e[u].begin())[1];
e[u].erase(e[u].begin());
while(e[u].size()&&!bz[(*e[u].begin())[1]])
e[u].erase(e[u].begin());
y=(*e[u].begin())[1];
e[u].erase(e[u].begin());
if(x==-1||y==-1) break;
a[u]=max(a[u],min(a[x],a[y]));
a[x]=a[y]=0;
bz[x]=bz[y]=0;
for(auto v:e[x])
{
if(v[1]!=u&&bz[v[1]])
e[u].insert({a[v[1]],v[1]});
}
for(auto v:e[y])
{
if(v[1]!=u&&bz[v[1]])
e[u].insert({a[v[1]],v[1]});
}
}
for(auto v:e[u])
{
if(bz[v[1]])
{
e[v[1]].insert({a[u],u});
}
}
}
for(int i=1; i<=n; i++)
if(a[i])
{
cout<<a[i]<<"\n";
return;
}
assert(0);
}
signed main()
{
ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
cout<<fixed<<setprecision(12);
int T=1;
// cin>>T;
while(T--)
{
O_o();
}
}
/*
7 7
1 1 2 3 1 2 1
1 2
2 3
1 3
2 4
2 5
5 6
5 7
5 4
1 2 3 4 5
1 2
1 3
1 4
1 5
*/
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3504kb
input:
7 9 1 4 1 3 3 6 7 5 4 3 6 3 4 2 3 5 2 2 6 6 7 5 1 4 6
output:
6
result:
ok single line: '6'
Test #2:
score: 0
Accepted
time: 0ms
memory: 3568kb
input:
5 7 1 5 3 1 4 3 5 1 3 5 1 1 4 5 4 2 4 3 2
output:
5
result:
ok single line: '5'
Test #3:
score: 0
Accepted
time: 0ms
memory: 3596kb
input:
7 7 2 4 2 3 3 6 7 5 1 2 6 5 3 4 6 1 6 1 2 2 7
output:
6
result:
ok single line: '6'
Test #4:
score: 0
Accepted
time: 0ms
memory: 3604kb
input:
3 2 2 2 2 2 3 1 3
output:
2
result:
ok single line: '2'
Test #5:
score: 0
Accepted
time: 0ms
memory: 3596kb
input:
5 5 3 1 2 4 5 3 2 2 4 3 5 5 1 2 5
output:
5
result:
ok single line: '5'
Test #6:
score: 0
Accepted
time: 0ms
memory: 3544kb
input:
7 9 3 2 3 5 2 6 7 7 4 5 4 5 6 1 7 1 6 2 3 7 6 6 4 4 2
output:
7
result:
ok single line: '7'
Test #7:
score: 0
Accepted
time: 0ms
memory: 3772kb
input:
3 2 1 2 3 3 1 2 1
output:
2
result:
ok single line: '2'
Test #8:
score: -100
Wrong Answer
time: 0ms
memory: 3744kb
input:
9 9 6 1 1 1 3 7 1 8 9 9 8 6 7 2 7 5 6 7 9 5 1 7 3 1 6 1 4
output:
7
result:
wrong answer 1st lines differ - expected: '9', found: '7'