Submission #202891

# Submission time Handle Problem Language Result Execution time Memory
202891 2020-02-18T15:49:45 Z MKopchev Difference (POI11_roz) C++14
80 / 100
401 ms 6212 KB
#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())
        {
            current=max(current-1,0);
            r++;
            last_in=0;
        }
        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
        {
            current=max(current-1,0);
            r++;
            last_in=0;
        }

        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

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 time Memory Grader output
1 Correct 5 ms 256 KB Output is correct
2 Correct 5 ms 256 KB Output is correct
3 Incorrect 5 ms 256 KB Output isn't correct
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 5 ms 376 KB Output is correct
2 Correct 5 ms 256 KB Output is correct
3 Incorrect 5 ms 256 KB Output isn't correct
# Verdict Execution time Memory Grader output
1 Correct 6 ms 504 KB Output is correct
2 Correct 5 ms 376 KB Output is correct
3 Correct 5 ms 256 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 6 ms 380 KB Output is correct
2 Correct 4 ms 256 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 9 ms 376 KB Output is correct
2 Correct 5 ms 376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 44 ms 888 KB Output is correct
2 Correct 5 ms 256 KB Output is correct
3 Correct 10 ms 376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 398 ms 6080 KB Output is correct
2 Correct 5 ms 256 KB Output is correct
3 Correct 220 ms 5080 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 400 ms 5984 KB Output is correct
2 Correct 307 ms 5328 KB Output is correct
3 Correct 80 ms 4976 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 401 ms 6212 KB Output is correct
2 Correct 84 ms 5332 KB Output is correct
3 Correct 97 ms 5360 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 397 ms 5600 KB Output is correct
2 Correct 74 ms 5120 KB Output is correct
3 Correct 96 ms 5488 KB Output is correct