1. 程式人生 > >2017 校賽 問題 E: 神奇的序列

2017 校賽 問題 E: 神奇的序列

是否 str 發現 gpo 長度 int ror 序列 mat

[提交][狀態][討論版]

題目描述

Aurora在南寧發現了一個神奇的序列,即對於該序列的任意相鄰兩數之和都不是三的倍數。現在給你一個長度為n的整數序列,讓你判斷是否能夠通過重新排列序列裏的數字使得該序列變成一個神奇的序列。

輸入

第一行包含一個數字T(T <= 50), 表示測試數據組數。

每一組測試數據首先給出一個數字n(2 <= n <= 200) 表示序列的長度,接下來n個數ai(1<= ai <= 100) 表示該序列。

輸出

每組測試數據輸出一行。如果序列能通過重新排列變成一個神奇的序列,輸出”pulsating!” 否則輸出”day day up!”。

樣例輸入

2
4
1 3 2 4
6
1 2 3 6 3 27

樣例輸出

pulsating!
day day up!


比賽就卡這道和那個C題的內存了。。。。。還好我思路是對的。就是數據有點問題,還是自己點背。不開數組就過了。思路就是因為3的倍數只有加3的倍數
才能被3整除,所以我先把3的倍數找出來,剩下的數模3不是1就是2,那就好辦了,1之間相鄰沒問題。2之間相鄰也沒問題,就是1 2相鄰不行,1 2之間必須要有3才可以,所以只有兩種情況不合法。1.3的個數超一半,怎麽排都不行。

2. 1 2之間沒有3.
 1 #include<cstdio>
 2 #include<cstring>
 3
#include<iostream> 4 #include<algorithm> 5 #include<cmath> 6 using namespace std; 7 8 int main() 9 { 10 int T,n,a; 11 cin>>T; 12 while(T--) 13 { 14 cin>>n; 15 int t1=0,t2=0; 16 for(int i=0; i<n; i++) 17 { 18 cin>>a;
19 if(a%3==1) t1++; 20 else if(a%3==2) t2++; 21 } 22 if((n>2*(t1+t2)+1)||(t1>0&&t2>0&&n==t1+t2)) 23 printf("day day up!\n"); 24 else 25 printf("pulsating!\n"); 26 } 27 return 0; 28 }



2017 校賽 問題 E: 神奇的序列