답안 #83438

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
83438 2018-11-07T15:06:50 Z Bodo171 Rope (JOI17_rope) C++14
0 / 100
57 ms 47764 KB
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
const int nmax=1000*1000+5;
vector<int> l[nmax],v[nmax];
int pr[nmax];
int comb[nmax];
int a[nmax],ap[nmax],ans[nmax];
int n,m,i,j,nr,pnt;
int check(int a,int b)
{
    return n-(ap[a]+ap[b]-comb[b]);
}
void solve(int st,int dr)
{
    if(st>dr)
        return;
    for(i=1;i<=m;i++)
        v[i].clear();
    for(i=st;i<dr;i+=2)
        if(a[i]!=a[i+1])
        {
            v[a[i]].push_back(a[i+1]);
            v[a[i+1]].push_back(a[i]);
        }
    for(i=1;i<=m;i++)
    {
        for(j=0;j<v[i].size();j++)
            comb[v[i][j]]++;
        for(j=0;j<v[i].size();j++)
            ans[i]=min(check(i,v[i][j]),ans[i]);
        if(i!=a[1])
            ans[i]=min(check(i,a[1]),ans[i]);
        if(i!=a[n])
            ans[i]=min(check(i,a[n]),ans[i]);
        pnt=m;
        while(pnt>0&&(comb[pr[pnt]]||pr[pnt]==i))
            pnt--;
        if(pnt)
            ans[i]=min(check(i,pr[pnt]),ans[i]);
        for(j=0;j<v[i].size();j++)
            comb[v[i][j]]--;
    }
}
int main()
{
    //freopen("data.in","r",stdin);
    cin>>n>>m;
    for(i=1;i<=m;i++)
        ans[i]=n;
    for(i=1;i<=n;i++)
    {
        cin>>a[i];
        ap[a[i]]++;
        ans[a[i]]--;
    }
    nr=0;
    for(i=1;i<=m;i++)
        l[ap[i]].push_back(i);
    for(i=1;i<=n;i++)
        for(j=0;j<l[i].size();j++)
          pr[++nr]=l[i][j];
    solve(1,n-n%2);
    solve(2,n-1+n%2);
    for(i=1;i<=m;i++)
        cout<<ans[i]<<'\n';
    return 0;
}

Compilation message

rope.cpp: In function 'void solve(int, int)':
rope.cpp:29:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(j=0;j<v[i].size();j++)
                 ~^~~~~~~~~~~~
rope.cpp:31:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(j=0;j<v[i].size();j++)
                 ~^~~~~~~~~~~~
rope.cpp:42:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(j=0;j<v[i].size();j++)
                 ~^~~~~~~~~~~~
rope.cpp: In function 'int main()':
rope.cpp:62:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(j=0;j<l[i].size();j++)
                 ~^~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 44 ms 47352 KB Output is correct
2 Correct 44 ms 47352 KB Output is correct
3 Correct 44 ms 47424 KB Output is correct
4 Correct 45 ms 47448 KB Output is correct
5 Correct 45 ms 47468 KB Output is correct
6 Correct 47 ms 47656 KB Output is correct
7 Correct 57 ms 47656 KB Output is correct
8 Correct 44 ms 47656 KB Output is correct
9 Correct 45 ms 47656 KB Output is correct
10 Correct 53 ms 47720 KB Output is correct
11 Correct 45 ms 47720 KB Output is correct
12 Correct 45 ms 47720 KB Output is correct
13 Correct 44 ms 47720 KB Output is correct
14 Correct 44 ms 47720 KB Output is correct
15 Correct 45 ms 47720 KB Output is correct
16 Correct 46 ms 47764 KB Output is correct
17 Correct 44 ms 47764 KB Output is correct
18 Correct 45 ms 47764 KB Output is correct
19 Correct 45 ms 47764 KB Output is correct
20 Correct 45 ms 47764 KB Output is correct
21 Incorrect 46 ms 47764 KB Output isn't correct
22 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 44 ms 47352 KB Output is correct
2 Correct 44 ms 47352 KB Output is correct
3 Correct 44 ms 47424 KB Output is correct
4 Correct 45 ms 47448 KB Output is correct
5 Correct 45 ms 47468 KB Output is correct
6 Correct 47 ms 47656 KB Output is correct
7 Correct 57 ms 47656 KB Output is correct
8 Correct 44 ms 47656 KB Output is correct
9 Correct 45 ms 47656 KB Output is correct
10 Correct 53 ms 47720 KB Output is correct
11 Correct 45 ms 47720 KB Output is correct
12 Correct 45 ms 47720 KB Output is correct
13 Correct 44 ms 47720 KB Output is correct
14 Correct 44 ms 47720 KB Output is correct
15 Correct 45 ms 47720 KB Output is correct
16 Correct 46 ms 47764 KB Output is correct
17 Correct 44 ms 47764 KB Output is correct
18 Correct 45 ms 47764 KB Output is correct
19 Correct 45 ms 47764 KB Output is correct
20 Correct 45 ms 47764 KB Output is correct
21 Incorrect 46 ms 47764 KB Output isn't correct
22 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 44 ms 47352 KB Output is correct
2 Correct 44 ms 47352 KB Output is correct
3 Correct 44 ms 47424 KB Output is correct
4 Correct 45 ms 47448 KB Output is correct
5 Correct 45 ms 47468 KB Output is correct
6 Correct 47 ms 47656 KB Output is correct
7 Correct 57 ms 47656 KB Output is correct
8 Correct 44 ms 47656 KB Output is correct
9 Correct 45 ms 47656 KB Output is correct
10 Correct 53 ms 47720 KB Output is correct
11 Correct 45 ms 47720 KB Output is correct
12 Correct 45 ms 47720 KB Output is correct
13 Correct 44 ms 47720 KB Output is correct
14 Correct 44 ms 47720 KB Output is correct
15 Correct 45 ms 47720 KB Output is correct
16 Correct 46 ms 47764 KB Output is correct
17 Correct 44 ms 47764 KB Output is correct
18 Correct 45 ms 47764 KB Output is correct
19 Correct 45 ms 47764 KB Output is correct
20 Correct 45 ms 47764 KB Output is correct
21 Incorrect 46 ms 47764 KB Output isn't correct
22 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 44 ms 47352 KB Output is correct
2 Correct 44 ms 47352 KB Output is correct
3 Correct 44 ms 47424 KB Output is correct
4 Correct 45 ms 47448 KB Output is correct
5 Correct 45 ms 47468 KB Output is correct
6 Correct 47 ms 47656 KB Output is correct
7 Correct 57 ms 47656 KB Output is correct
8 Correct 44 ms 47656 KB Output is correct
9 Correct 45 ms 47656 KB Output is correct
10 Correct 53 ms 47720 KB Output is correct
11 Correct 45 ms 47720 KB Output is correct
12 Correct 45 ms 47720 KB Output is correct
13 Correct 44 ms 47720 KB Output is correct
14 Correct 44 ms 47720 KB Output is correct
15 Correct 45 ms 47720 KB Output is correct
16 Correct 46 ms 47764 KB Output is correct
17 Correct 44 ms 47764 KB Output is correct
18 Correct 45 ms 47764 KB Output is correct
19 Correct 45 ms 47764 KB Output is correct
20 Correct 45 ms 47764 KB Output is correct
21 Incorrect 46 ms 47764 KB Output isn't correct
22 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 44 ms 47352 KB Output is correct
2 Correct 44 ms 47352 KB Output is correct
3 Correct 44 ms 47424 KB Output is correct
4 Correct 45 ms 47448 KB Output is correct
5 Correct 45 ms 47468 KB Output is correct
6 Correct 47 ms 47656 KB Output is correct
7 Correct 57 ms 47656 KB Output is correct
8 Correct 44 ms 47656 KB Output is correct
9 Correct 45 ms 47656 KB Output is correct
10 Correct 53 ms 47720 KB Output is correct
11 Correct 45 ms 47720 KB Output is correct
12 Correct 45 ms 47720 KB Output is correct
13 Correct 44 ms 47720 KB Output is correct
14 Correct 44 ms 47720 KB Output is correct
15 Correct 45 ms 47720 KB Output is correct
16 Correct 46 ms 47764 KB Output is correct
17 Correct 44 ms 47764 KB Output is correct
18 Correct 45 ms 47764 KB Output is correct
19 Correct 45 ms 47764 KB Output is correct
20 Correct 45 ms 47764 KB Output is correct
21 Incorrect 46 ms 47764 KB Output isn't correct
22 Halted 0 ms 0 KB -