第11届中南林业校赛 0和5

    xiaoxiao2025-06-14  11

    链接:https://ac.nowcoder.com/acm/contest/910/G 来源:牛客网  

    小C手中有n张牌,每张牌上有一个一位数的数,这个数字不是0就是5。

    小C从这些牌在抽出任意张(不能抽0张),排成一行就组成了一个数。

    使得这个数尽可能大,而且可以被90整除。

     

    注意:

    1.这个数没有前导0,

    2.小C不需要使用所有的牌。

     

    输入描述:

    每个测试数据输入共2行。 第一行给出一个n,表示n张牌。(1<=n<=1000) 第二行给出n个整数a[0],a[1],a[2],…,a[n-1] (a[i]是0或5 ) 表示牌上的数字。

    输出描述:

    共一行,表示由所给牌组成的可以被90整除的最大的数,如果没有答案则输出”-1”(没有引号)

    示例1

    输入

    复制

    4 5 0 5 0

    输出

    复制

    0

    5的个数是9的倍数就可以被9整除

    #include<bits/stdc++.h> using namespace std; int a[1005],n,c0,c5; int main() { cin>>n; for(int i=0; i<n; i++) { int x; cin>>x; if(x==0) c0++; else c5++; } int cnt=c5/9; if(cnt==0) { if(c0==0) cout<<"-1"; else cout<<'0'; } else { for(int i=1; i<=cnt*9; i++) cout<<'5'; for(int i=1; i<=c0; i++) cout<<'0'; } return 0; }

     

    最新回复(0)