128582025-01-02 16:56:04ercseferencRácsháló gráfcpp17Elfogadva 50/5078ms568 KiB
#include <iostream>
#include <vector>
using namespace std;
vector<int>l1,l2; bool nincs;
struct csucs{vector<int>kim; bool van;};
csucs a[201];
int tav(int n, int m){
    nincs=0;
    for(int i=1; i<=m; i++){a[i].van=0;} a[n].van=1;
    l1.clear(); l2.clear(); l1.push_back(n);
    int p=0;
    while(nincs==0){
        p++;
        for(int i=0; i<l1.size(); i++){
            for(int j=0; j<a[l1[i]].kim.size(); j++){
                if(a[a[l1[i]].kim[j]].van==0){
                    a[a[l1[i]].kim[j]].van=1;
                    l2.push_back(a[l1[i]].kim[j]);}}}
        if(l2.size()==0)nincs=1;
        l1.clear();
        for(int i=0; i<l2.size(); i++){l1.push_back(l2[i]);}
        l2.clear();}
    return p-1;
    }
int main()
{
    int n,m,k,x,y;
    cin>>n>>m>>k;
    for(int i=1; i<=n*m; i++){
        if(i%m!=1){a[i].kim.push_back(i-1);}
        if(i%m!=0){a[i].kim.push_back(i+1);}
        if(i>m){a[i].kim.push_back(i-m);}
        if(i+m<=n*m){a[i].kim.push_back(i+m);}}
    bool szer; int maxi;
    for(int i=0; i<k; i++){
        cin>>x>>y; szer=0; for(int j=0; j<a[x].kim.size(); j++){if(a[x].kim[j]==y)szer=1;}
        if(szer==0){a[x].kim.push_back(y); a[y].kim.push_back(x);}
        maxi=0;
        for(int j=1; j<=n*m; j++){if(tav(j,n*m)>maxi){maxi=tav(j,n*m);}}
        cout<<maxi;
        if(i!=k-1)cout<<endl;}
    return 0;
}
    
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms320 KiB
2Elfogadva0/078ms320 KiB
3Elfogadva2/21ms320 KiB
4Elfogadva2/21ms508 KiB
5Elfogadva2/21ms360 KiB
6Elfogadva2/21ms320 KiB
7Elfogadva2/24ms320 KiB
8Elfogadva2/24ms320 KiB
9Elfogadva2/24ms568 KiB
10Elfogadva2/22ms332 KiB
11Elfogadva2/24ms320 KiB
12Elfogadva2/213ms320 KiB
13Elfogadva3/334ms320 KiB
14Elfogadva3/36ms320 KiB
15Elfogadva3/335ms320 KiB
16Elfogadva3/34ms356 KiB
17Elfogadva3/330ms320 KiB
18Elfogadva3/312ms320 KiB
19Elfogadva3/31ms320 KiB
20Elfogadva3/32ms332 KiB
21Elfogadva3/314ms320 KiB
22Elfogadva3/378ms424 KiB