ამოხსნების სტატუსი

ამ გვერდზე თქვენ იხილავთ გაგზავნილი ამოხსნების სტატუსს.


გაგზავნის თარიღი: 06.09.2019 13:03:52

ამოცანა: ვირუსები

მომხმარებელი: matemate200

ვერდიქტი: სრული ამოხსნა

შეფასება: 100.0 ქულა







#include <bits/stdc++.h>
#define ll long long
#define read1(a) scanf("%d",&a)
#define read2(a,b) scanf("%d%d",&a,&b)
#define read3(a,b,c) scanf("%d%d%d",&a,&b,&c)
#define write(a) printf("%d",a)
#define writen(a) printf("%d\n",a)
#define ff first
#define ss second
#define pll pair<long long ,long long>
#define pii pair<int ,int>
#define ull unsigned long long int
using namespace std;
vector <pii> pre;
bool b[501][501];
int cnt=0,n,m;
int virus()
{
    vector <pii> now;
    bool ind=false;
    for(int i=0;i<pre.size();i++)
    {
        int x=pre[i].ff,y=pre[i].ss;
        if(x+1<=n)
            if(!b[x+1][y])
            {
                ind=true;
                b[x+1][y]=true;
                now.push_back({x+1,y});
            }
        if(y+1<=n)
            if(!b[x][y+1])
            {
                ind=true;
                b[x][y+1]=true;
                now.push_back({x,y+1});
            }
        if(x-1>0)
            if(!b[x-1][y])
            {
                ind=true;
                b[x-1][y]=true;
                now.push_back({x-1,y});
            }
        if(y-1>0)
            if(!b[x][y-1])
            {
                ind=true;
                b[x][y-1]=true;
                now.push_back({x,y-1});
            }
    }
    pre=now;
    if(ind)
        return 1;
    return 0;
}
int main()
{

     cin >> n >> m;
     for(int i=1;i<=m;i++)
     {
         int x,y;
         cin >> x >> y;
         pre.push_back({x,y});
         b[x][y]=true;
     }

     while(true)
     {
         int ind=virus();
         if(ind==1)
            cnt++;
         else break;
     }
     cout << cnt;
}

ტესტები

შემავალი მონაცემები
5 1
2 3
გამომავალი მონაცემები
5
თქვენი პასუხი
5
ჩეკერის პასუხი
YES
შემავალი მონაცემები
5 2
1 3
5 5
გამომავალი მონაცემები
5
თქვენი პასუხი
5
ჩეკერის პასუხი
YES
შემავალი მონაცემები
6 3
1 2
1 4
1 6
გამომავალი მონაცემები
6
თქვენი პასუხი
6
ჩეკერის პასუხი
YES
შემავალი მონაცემები
6 5
2 2
2 5
4 4
6 2
6 5
გამომავალი მონაცემები
3
თქვენი პასუხი
3
ჩეკერის პასუხი
YES
შემავალი მონაცემები
7 7
1 1
2 2
3 3
4 4
5 5
6 6
7 7
გამომავალი მონაცემები
6
თქვენი პასუხი
6
ჩეკერის პასუხი
YES
შემავალი მონაცემები
50 1
3 5
გამომავალი მონაცემები
92
თქვენი პასუხი
92
ჩეკერის პასუხი
YES
შემავალი მონაცემები
100 2
7 8
80 56
გამომავალი მონაცემები
104
თქვენი პასუხი
104
ჩეკერის პასუხი
YES
შემავალი მონაცემები
200 6
12 11
26 37
55 183
125 48
186 189
39 199
გამომავალი მონაცემები
122
თქვენი პასუხი
122
ჩეკერის პასუხი
YES
შემავალი მონაცემები
500 1
22 458
გამომავალი მონაცემები
935
თქვენი პასუხი
935
ჩეკერის პასუხი
YES
შემავალი მონაცემები
500 10
250 260
45 307
49 485
397 8
163 20
5 10
308 59
308 60
122 486
199 283
გამომავალი მონაცემები
427
თქვენი პასუხი
427
ჩეკერის პასუხი
YES