888 | 2022. 01. 25 10:39:57 | Halasz Eszter | Üzletlánc | cpp11 | Hibás válasz 4/40 | 119ms | 15988 KiB |
#include <iostream>
//#include <fstream>
#include <vector>
#include <deque>
#include <algorithm>
using namespace std;
//ifstream cin("uzletlanc.in");
//ofstream cout("uzletlanc.out");
struct adat
{
int alep,blep,lat,p;
bool lep;
vector<int>sz;
};
vector<adat>x;
deque<int>y;
vector<int>v;
vector<string >meg;
int n,m,a,b,i,p,q,csp,db,dba,dbb;
int has(adat a, adat b)
{
if(a.blep>b.blep) return 1;
else return 0;
}
int main()
{
cin>>n>>m>>a>>b;
x.resize(n+1);
for(i=1;i<=m;++i)
{
cin>>p>>q;
x[p].sz.push_back(q);
x[q].sz.push_back(p);
}
y.push_back(a);
x[a].lat=1;
while(!y.empty())
{
csp=y.front();
y.pop_front();
for(auto e:x[csp].sz)
{
if(x[e].lat==0)
{
x[e].lat=1;
x[e].alep=x[csp].alep+1;
y.push_back(e);
}
else x[e].alep=min(x[e].alep,x[csp].alep+1);
}
}
for(i=1;i<=n;++i)
{
x[i].lat=0;
x[i].p=i;
}
y.push_back(b);
x[b].lat=1;
while(!y.empty())
{
csp=y.front();
y.pop_front();
for(auto e:x[csp].sz)
{
if(x[e].lat==0)
{
x[e].lat=1;
x[e].blep=x[csp].blep+1;
y.push_back(e);
}
else x[e].blep=min(x[e].blep,x[csp].blep+1);
}
}
x[b].alep=0;
x[a].blep=0;
//for(i=1;i<=n;++i)
// cout<<i<<": "<<x[i].alep<<" "<<x[i].blep<<"\n";
v.resize(n+1);
for(i=1;i<=n;++i)
v[i]=x[i].alep;
meg.resize(n+1);
meg[a]='A';
meg[b]='B';
dba=n/2-1;
dbb=dba;
sort(x.begin()+1,x.end(),has);
for(i=1;i<=n;++i)
{
if(x[i].p!=a && x[i].p!=b)
{
if(x[i].blep>v[x[i].p] && dba!=0)
{
meg[x[i].p]='A';
db+=v[x[i].p];
dba--;
}
else
{
meg[x[i].p]='B';
db+=x[i].blep;
dbb--;
}
}
}
cout<<db<<"\n";
for(i=1;i<=n;++i) cout<<meg[i];
return 0;
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 4/40 | ||||||
1 | Elfogadva | 0/0 | 2ms | 1872 KiB | |||
2 | Hibás válasz | 0/0 | 2ms | 1920 KiB | |||
3 | Elfogadva | 2/2 | 1ms | 1968 KiB | |||
4 | Elfogadva | 2/2 | 1ms | 1972 KiB | |||
5 | Hibás válasz | 0/3 | 1ms | 1976 KiB | |||
6 | Hibás válasz | 0/3 | 1ms | 1992 KiB | |||
7 | Hibás válasz | 0/2 | 1ms | 1992 KiB | |||
8 | Hibás válasz | 0/2 | 1ms | 2004 KiB | |||
9 | Hibás válasz | 0/3 | 1ms | 2008 KiB | |||
10 | Hibás válasz | 0/3 | 1ms | 2012 KiB | |||
11 | Hibás válasz | 0/2 | 9ms | 3072 KiB | |||
12 | Hibás válasz | 0/2 | 12ms | 3416 KiB | |||
13 | Hibás válasz | 0/3 | 54ms | 5888 KiB | |||
14 | Hibás válasz | 0/3 | 8ms | 3948 KiB | |||
15 | Hibás válasz | 0/2 | 107ms | 13028 KiB | |||
16 | Hibás válasz | 0/2 | 118ms | 14244 KiB | |||
17 | Hibás válasz | 0/3 | 111ms | 14048 KiB | |||
18 | Hibás válasz | 0/3 | 119ms | 15988 KiB |