• 题解——Codeforces Round #507 (based on Olympiad of Metropolises) T1 (模拟)


    暴力模拟即可

    就是情况略多

    #include <cstdio>
    #include <algorithm>
    #include <cstring>
    using namespace std;
    int n,a,b,num[40],pos,ans=0;
    int main(){
      scanf("%d %d %d",&n,&a,&b);
      for(int i=1;i<=n;i++)
        scanf("%d",&num[i]);
        if(n%2==1){
        pos=n/2+1;
        if(num[pos]==2)
          ans+=min(a,b);
        for(int i=pos-1,j=pos+1;i>=1;i--,j++){
          if(num[i]==num[j]&&num[i]!=2&&num[j]!=2)
            continue;
          else if(num[i]!=num[j]&&num[i]==0){
            if(num[j]==1){
              printf("-1");
              return 0;
            }
            else{
              ans+=a;
            }
          }
          else if(num[i]!=num[j]&&num[i]==1){
            if(num[j]==0){
              printf("-1");
              return 0;
            }
            else{
              ans+=b;
            }
          }
          else if(num[i]!=num[j]&&num[i]==2){
            if(num[j]==1){
              ans+=b;
            }
            else if(num[j]==0){
              ans+=a;
            }
          }
          else if(num[i]==num[j]&&num[i]==2&&num[j]==2){
            ans+=min(a,b)*2;
          }
        }
      }
      else{
        pos=n/2;
        for(int i=pos,j=pos+1;i>=1;i--,j++){
          if(num[i]==num[j]&&num[i]!=2&&num[j]!=2)
            continue;
          else if(num[i]!=num[j]&&num[i]==0){
            if(num[j]==1){
              printf("-1");
              return 0;
            }
            else{
              ans+=a;
            }
          }
          else if(num[i]!=num[j]&&num[i]==1){
            if(num[j]==0){
              printf("-1");
              return 0;
            }
            else{
              ans+=b;
            }
          }
          else if(num[i]!=num[j]&&num[i]==2){
            if(num[j]==1){
              ans+=b;
            }
            else if(num[j]==0){
              ans+=a;
            }
          }
          else if(num[i]==num[j]&&num[i]==2&&num[j]==2){
            ans+=min(a,b)*2;
          }
        }
      }
      printf("%d",ans);
    }
  • 相关阅读:
    Python中的类(上)
    Django REST Framework API Guide 07
    Django REST Framework API Guide 06
    Django REST Framework API Guide 05
    Django REST Framework API Guide 04
    Django REST Framework API Guide 03
    Django REST Framework API Guide 02
    Django REST Framework API Guide 01
    Django 详解 信号Signal
    Django 详解 中间件Middleware
  • 原文地址:https://www.cnblogs.com/dreagonm/p/9596028.html
Copyright © 2020-2023  润新知