Submission #1678212


Source Code Expand

#include<bits/stdc++.h>
#define N 305
#define mk(x,y) make_pair(x,y)
using namespace std;
const int p = 1000000007;
int n,m;
vector<pair<int,int> >v[N];
int f[2][N][N][3];
struct node
{
    int l,r,x;
}a[N];
int main()
{
    cin>>n>>m;
    for(int i=1;i<=m;i++)
    {
        scanf("%d%d%d",&a[i].l,&a[i].r,&a[i].x);
        if(a[i].l==a[i].r&&a[i].x!=1)
        {
            puts("0");return 0;
        }
        else v[a[i].r].push_back(mk(a[i].l,a[i].x));
    }
    f[1][0][0][0]=f[1][0][0][1]=f[1][0][0][2]=1;
    int now=1,pre=0;
    for(int i=2;i<=n;i++)
    {
        now^=1;pre^=1;
        memset(f[now],0,sizeof(f[now]));
        int ed=v[i].size();
        for(int j=0;j<=n;j++)
        {
            for(int k=0;k<=n;k++)
            {
                for(int l=0;l<=2;l++)
                {
                    if(!f[pre][j][k][l])continue;
                    int p1,p2;
                    for(int s=0;s<=2;s++)
                    {
                        if(s==l)p1=j,p2=k;
                        else if((s==2&&l==1)||(s==1&&l==2)||(s==0&&l==2))p1=j,p2=i-1;
                        else p1=i-1,p2=j;
                        for(int r=0;r<ed;r++)
                        {
                            int tmp=(p1>=v[i][r].first)+(p2>=v[i][r].first);
                            if(tmp+1!=v[i][r].second){p1=-1;break;}
                        }
                        if(p1==-1)continue;
                        (f[now][p1][p2][s]+=f[pre][j][k][l])%=p;
                    }
                }
            }
        }
    }
    int ans=0;
    for(int i=0;i<=n;i++)for(int j=0;j<=n;j++)for(int k=0;k<=2;k++)(ans+=f[now][i][j][k])%=p;
    cout<<ans<<endl;
    return 0;
}

Submission Info

Submission Time
Task E - RGB Sequence
User SD_le
Language C++14 (GCC 5.4.1)
Score 800
Code Size 1749 Byte
Status AC
Exec Time 504 ms
Memory 2432 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:18:48: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d%d%d",&a[i].l,&a[i].r,&a[i].x);
                                                ^

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 800 / 800
Status
AC × 4
AC × 47
Set Name Test Cases
Sample 0_00.txt, 0_01.txt, 0_02.txt, 0_03.txt
All 0_00.txt, 0_01.txt, 0_02.txt, 0_03.txt, 1_00.txt, 1_01.txt, 1_02.txt, 1_03.txt, 1_04.txt, 1_05.txt, 1_06.txt, 1_07.txt, 1_08.txt, 1_09.txt, 1_10.txt, 1_11.txt, 1_12.txt, 1_13.txt, 1_14.txt, 1_15.txt, 1_16.txt, 1_17.txt, 1_18.txt, 1_19.txt, 1_20.txt, 1_21.txt, 1_22.txt, 1_23.txt, 1_24.txt, 1_25.txt, 1_26.txt, 1_27.txt, 1_28.txt, 1_29.txt, 1_30.txt, 1_31.txt, 1_32.txt, 1_33.txt, 1_34.txt, 1_35.txt, 1_36.txt, 1_37.txt, 1_38.txt, 1_39.txt, 1_40.txt, 1_41.txt, 1_42.txt
Case Name Status Exec Time Memory
0_00.txt AC 3 ms 2432 KB
0_01.txt AC 3 ms 2432 KB
0_02.txt AC 1 ms 256 KB
0_03.txt AC 3 ms 2432 KB
1_00.txt AC 95 ms 2432 KB
1_01.txt AC 90 ms 2432 KB
1_02.txt AC 91 ms 2432 KB
1_03.txt AC 95 ms 2432 KB
1_04.txt AC 101 ms 2432 KB
1_05.txt AC 90 ms 2432 KB
1_06.txt AC 91 ms 2432 KB
1_07.txt AC 89 ms 2432 KB
1_08.txt AC 93 ms 2432 KB
1_09.txt AC 90 ms 2432 KB
1_10.txt AC 92 ms 2432 KB
1_11.txt AC 87 ms 2432 KB
1_12.txt AC 86 ms 2432 KB
1_13.txt AC 92 ms 2432 KB
1_14.txt AC 93 ms 2432 KB
1_15.txt AC 94 ms 2432 KB
1_16.txt AC 101 ms 2432 KB
1_17.txt AC 92 ms 2432 KB
1_18.txt AC 92 ms 2432 KB
1_19.txt AC 89 ms 2432 KB
1_20.txt AC 92 ms 2432 KB
1_21.txt AC 91 ms 2432 KB
1_22.txt AC 96 ms 2432 KB
1_23.txt AC 94 ms 2432 KB
1_24.txt AC 93 ms 2432 KB
1_25.txt AC 91 ms 2432 KB
1_26.txt AC 88 ms 2432 KB
1_27.txt AC 90 ms 2432 KB
1_28.txt AC 92 ms 2432 KB
1_29.txt AC 90 ms 2432 KB
1_30.txt AC 92 ms 2432 KB
1_31.txt AC 88 ms 2432 KB
1_32.txt AC 94 ms 2432 KB
1_33.txt AC 91 ms 2432 KB
1_34.txt AC 90 ms 2432 KB
1_35.txt AC 94 ms 2432 KB
1_36.txt AC 83 ms 2432 KB
1_37.txt AC 88 ms 2432 KB
1_38.txt AC 94 ms 2432 KB
1_39.txt AC 91 ms 2432 KB
1_40.txt AC 504 ms 2432 KB
1_41.txt AC 96 ms 2432 KB
1_42.txt AC 91 ms 2432 KB