Submission #202895

#TimeUsernameProblemLanguageResultExecution timeMemory
202895MKopchevDifference (POI11_roz)C++14
100 / 100
396 ms6340 KiB
#include<bits/stdc++.h>
using namespace std;
const int nmax=1e6+42;
int n;
vector<int> seen[26];
int get_inp()
{
    char ret;
    scanf("%c",&ret);
    while('a'>ret||ret>'z')scanf("%c",&ret);
    return ret-'a';
}
int ask(int big,int small)
{
    if(seen[big].size()==0||seen[small].size()==0)return 0;
    int mx=0,current=0;

    int l=0,r=0,last_in=0;
    while(l<seen[big].size()||r<seen[small].size())
    {
        if(l==seen[big].size())
        {
            if(current==0)last_in=0;
            current=max(current-1,0);
            r++;
        }
        else if(r==seen[small].size())
        {
            current=current+1;
            l++;
            last_in++;
        }
        else if(seen[big][l]<seen[small][r])
        {
            current=current+1;
            l++;
            last_in++;
        }
        else
        {
            if(current==0)last_in=0;
            current=max(current-1,0);
            r++;
        }

        mx=max(mx,current-(current==last_in));
    }
    return mx;
}
int main()
{
    scanf("%i",&n);

    for(int i=1;i<=n;i++)
        seen[get_inp()].push_back(i);

    int output=0;
    for(int big=0;big<26;big++)
        for(int small=0;small<26;small++)
            if(big!=small)output=max(output,ask(big,small));
    printf("%i\n",output);
    return 0;
}

Compilation message (stderr)

roz.cpp: In function 'int ask(int, int)':
roz.cpp:19:12: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     while(l<seen[big].size()||r<seen[small].size())
           ~^~~~~~~~~~~~~~~~~
roz.cpp:19:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     while(l<seen[big].size()||r<seen[small].size())
                               ~^~~~~~~~~~~~~~~~~~~
roz.cpp:21:13: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         if(l==seen[big].size())
            ~^~~~~~~~~~~~~~~~~~
roz.cpp:27:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         else if(r==seen[small].size())
                 ~^~~~~~~~~~~~~~~~~~~~
roz.cpp: In function 'int get_inp()':
roz.cpp:9:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%c",&ret);
     ~~~~~^~~~~~~~~~~
roz.cpp:10:33: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     while('a'>ret||ret>'z')scanf("%c",&ret);
                            ~~~~~^~~~~~~~~~~
roz.cpp: In function 'int main()':
roz.cpp:52:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%i",&n);
     ~~~~~^~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...