YEZAELP

TOI11: การดําเนินการซือกีตีกา (segitiga)

Jun 8th, 2020 (edited)
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.66 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. using pii = pair<int,pair<int,int>>;
  4. int dp[256][256][3];
  5. int ar[256];
  6. int main(){
  7.     int t=20;
  8.     while(t--){
  9.         int n;
  10.         scanf("%d",&n);
  11.         for(int i=1;i<=n;i++) {
  12.             char in;
  13.             scanf(" %c",&in);
  14.             ar[i]=in-'0';
  15.         }
  16.         for(int i=1;i<=n;i++){
  17.             for(int j=1;j<=n;j++){
  18.                 for(int k=0;k<=2;k++){
  19.                     dp[i][j][k] = false;
  20.                 }
  21.             }
  22.         }
  23.         for(int i=n;i>=1;i--){
  24.             for(int j=1;j<=n;j++){
  25.                 if(i==j){
  26.                     dp[i][j][ar[i]] = true;
  27.                     continue;
  28.                 }
  29.                 for(int k=i;k<j;k++){
  30.                     dp[i][j][0] = dp[i][j][0] or ( dp[i][k][0] and dp[k+1][j][2] );
  31.                     dp[i][j][1] = dp[i][j][1] or ( ( dp[i][k][0] and dp[k+1][j][1] ) or
  32.                                                 ( dp[i][k][1] and dp[k+1][j][1] ) or
  33.                                                 ( dp[i][k][1] and dp[k+1][j][2] ) or
  34.                                                 ( dp[i][k][2] and dp[k+1][j][0] ) or
  35.                                                 ( dp[i][k][2] and dp[k+1][j][2] ) );
  36.                     dp[i][j][2] = dp[i][j][2] or ( ( dp[i][k][0] and dp[k+1][j][0] ) or
  37.                                                 ( dp[i][k][1] and dp[k+1][j][0] ) or
  38.                                                 ( dp[i][k][2] and dp[k+1][j][1] ) ) ;
  39.                 }
  40.             }
  41.         }
  42.         if(dp[1][n][0]) printf("yes");
  43.         else printf("no");
  44.         printf("\n");
  45.     }
  46.     return 0;
  47. }
Add Comment
Please, Sign In to add comment