愿各位程序员都能记住,输出第一条hello world时候的心情。坚持下去,你的每一条代码都在默默的改变世界,加油!加油!加油! “这些年我一直提醒自己一件事情,千万不要自己感动自己。大部分人看似的努力,不过是愚蠢导致的。 什么熬夜看书到天亮,连续几天只睡几小时,多久没放假了,如果这些东西也值得夸耀,那么富士康流水线上任何一个人都比你努力多了。 人难免天生有自怜的情绪,唯有时刻保持清醒,才能看清真正的价值在哪里。

洛谷div2【XR-4】歌唱比赛

 

本人水平有限,题解不到为处,请多多谅解

 

本蒟蒻谢谢大家观看

 

 

题目传送门

 

 

题目有地方没有说清楚:

1:即小X的各个位数的点赞数之和==小Y的各个位数的点赞数之和(就是这个毒瘤导致我只有11分

2:出现-1的情况,从左往右出现第一个Z时,若之后只要有一个为X或Y,那么就无法得出,输出-1

模拟即可

code:

 1 #include<bits/stdc++.h>
 2 #pragma GCC optimize(3)
 3 const int N=1e6+100;
 4 using namespace std;
 5 string ch;
 6 int len;
 7 int k[N],h[N],tot,cnt,wz[N];
 8 inline int read(){
 9     int x=0,f=1;char ch=getchar();
10     while(!isdigit(ch)){if(ch=='-')f=-1;ch=getchar();}
11     while(isdigit(ch)){x=(x<<1)+(x<<3)+(ch^48);ch=getchar();}
12     return x*f;
13 }
14 inline void write(int x){
15      char F[200];
16      int tmp=x>0?x:-x ;
17      if(x<0)putchar('-') ;
18      int cnt=0 ;
19         while(tmp>0)
20         {
21             F[cnt++]=tmp%10+'0';
22             tmp/=10;
23         }
24         while(cnt>0)putchar(F[--cnt]) ;
25 }
26 void solve1(){
27     if(ch[0]=='X'){
28         cout<<3<<endl;
29         cout<<2<<endl;
30         return ;
31     }
32     if(ch[0]=='Y'){
33         cout<<2<<endl;
34         cout<<3<<endl;
35         return ;
36     }
37     if(ch[0]=='Z'){
38         cout<<1<<endl;
39         cout<<1<<endl;
40         return ;
41     } 
42     return ;
43 }
44 void solve2(){
45     for(int i=0;i<len;i++){
46         if(ch[i]=='X'){
47             k[++tot]=9;
48             h[++cnt]=0;
49         }
50         if(ch[i]=='Y'){
51             k[++tot]=0;
52             h[++cnt]=9;
53         }
54         if(ch[i]=='Z'){
55             k[++tot]=1;
56             h[++cnt]=1;
57             wz[i]=1;
58         }
59     }
60     for(int i=0;i<len-1;i++){
61         if(wz[i]!=0){
62         if(wz[i]!=wz[i+1]){
63             printf("-1\n");
64             return ;
65         }
66         //cout<<"wz= "<<wz[i]<<endl;
67     }
68     }
69     for(int i=1;i<=tot;i++){
70         printf("%d",k[i]);
71     }
72     cout<<endl;
73     for(int i=1;i<=cnt;i++){
74         printf("%d",h[i]);
75     }
76     return ;
77 }
78 int main()
79 {
80     cin>>ch;
81     len=ch.size();
82     //cout<<"len= "<<ch[1]<<endl;
83     if(len==1)solve1();
84     else solve2();
85     return 0;
86 }

 

posted @ 2019-10-21 17:43  max_lemon  阅读(168)  评论(0编辑  收藏  举报
Live2D
别人恋爱不成功,你连暗恋都不成功! 你写不出代码的原因只有一个,那就是你没有彻底理解这个算法的思想!!-----沃茨·基硕德