zoukankan      html  css  js  c++  java
  • 题解——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);
    }
  • 相关阅读:
    网上图书商城项目学习笔记-001工具类测试
    SpringMVC,MyBatis商品的增删改查
    3.Spring-用反射模拟IoC
    2.Sprng-IoC-Java反射例子
    1.Spring IoC简单例子
    HTML5 文件API(二)
    HTML5 文件API(一)
    HTML5 编辑 API 之 Range 对象(二)
    hdu 5384 Danganronpa
    hdu 3065 病毒侵袭持续中
  • 原文地址:https://www.cnblogs.com/dreagonm/p/9596028.html
Copyright © 2011-2022 走看看