spoj 416
又臭又长的烂代码 ......
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#define maxn 1010 using namespace std; char a[1010];
int num[10],last; //bool cc(int sum)
//{
// if(sum%3 == 0)
// return true;
// else if(sum % 3 == 1)
// {
// int v;
// for(v = 0; v < 3; v++)
// if(num[v*3+1])
// break;
// if(v == 3)
// {
// int tt = 2;
// for(int k = 0; tt && k < 3; k++)
// while(tt && (num[k*3+2]))
// {
// num[k*3+2]--;
// tt--;
// }
// if(tt)
// return false;
// }
// else
// num[v*3+1]--;
// }
// else
// {
// int v;
// for(v = 0; v < 3; v++)
// if(num[v*3+2])
// break;
// if(v == 3)
// {
// int tt = 2;
// for(int k = 0; tt && k < 3; k++)
// while(tt && (num[k*3+1]))
// {
// num[k*3+1]--;
// tt--;
// }
// if(tt)
// return false;
// }
// else
// num[v*3+2]--;
// }
// return true;
//}
bool cc(int sum)
{
if(sum%3 == 0)
return true;
else if(sum % 3 == 1)
{
if(num[1])
{
num[1]--;
return true;
}
else if(num[4])
{
num[4]--;
return true;
}
else if(num[7])
{
num[7]--;
return true;
}
else if(num[2] >= 2)
{
num[2] -= 2;
return true;
}
else if(num[2] && num[5])
{
num[2]--;
num[5]--;
return true;
}
else if(num[2] && num[8])
{
num[2]--;
num[8]--;
return true;
}
else if(num[5] >= 2)
{
num[5] -= 2;
return true;
}
else if(num[8] && num[5])
{
num[5]--;
num[8]--;
return true;
}
else if(num[8] >= 2)
{
num[8] -= 2;
return true;
}
}
else
{
if(num[2])
{
num[2]--;
return true;
}
else if(num[5])
{
num[5]--;
return true;
}
else if(num[8])
{
num[8]--;
return true;
}
else if(num[1] >= 2)
{
num[1] -= 2;
return true;
}
else if(num[1] && num[4])
{
num[1]--;
num[4]--;
return true;
}
else if(num[1] && num[7])
{
num[1]--;
num[7]--;
return true;
}
else if(num[4] >= 2)
{
num[4] -= 2;
return true;
}
else if(num[4] && num[7])
{
num[4]--;
num[7]--;
return true;
}
else if(num[7] >= 2)
{
num[7] -= 2;
return true;
}
}
return false;
}
bool findd(int sum)
{
if(!num[0] && !num[5])
return false; if(!num[0])
{
num[5]--;
last = 5;
return cc(sum);
}
else
{
num[0]--;
last = 0;
return cc(sum);
}
return false;
}
int main()
{
int t;
//freopen("d:/out.txt", "r", stdin);
//freopen("in.txt", "w", stdout);
scanf("%d",&t);
while(t--)
{
memset(num, 0, sizeof(num));
scanf("%s",a);
int len = strlen(a);
int sum = 0;
for(int i = 0; i < len; i++)
{
sum += a[i] - '0';
num[a[i]-'0']++;
}
last = 0;
bool flag = findd(sum);
int flag2 = 0;
if(flag)
{
for(int i = 9; i >= 1; i--)
{
for(int j = 0; j < num[i]; j++)
{
flag2 = 1;
printf("%d",i);
}
}
if(flag2)
{
for(int j = 0; j < num[0]; j++)
{
printf("%d",0);
}
printf("%d\n",last);
}
else
puts("0");
}
else
puts("impossible");
}
return 0;
}
spoj 416的更多相关文章
- SPOJ 416 Divisibility by 15 细节题
一个结论:一个数,如果它的所有数字之和能被3整除,那么这个数也能被3整除. 最后一位肯定是0或者5,如果没有就impossible. 剩下的就是,如何删除尽量少的数,使所有数字之和为3的倍数. 情况比 ...
- SPOJ 416 - Divisibility by 15(贪心)
糟烂的代码啊... 这个题目思路很简单——末位只可能为0和5,所有数字的和肯定被3整除 没有0和5的肯定不行 否则,把所有数字求和 如果被3整除,则从大到小输出 如果除3余1,则按以下顺序——删1: ...
- BZOJ 2588: Spoj 10628. Count on a tree [树上主席树]
2588: Spoj 10628. Count on a tree Time Limit: 12 Sec Memory Limit: 128 MBSubmit: 5217 Solved: 1233 ...
- SPOJ DQUERY D-query(主席树)
题目 Source http://www.spoj.com/problems/DQUERY/en/ Description Given a sequence of n numbers a1, a2, ...
- SPOJ GSS3 Can you answer these queries III[线段树]
SPOJ - GSS3 Can you answer these queries III Description You are given a sequence A of N (N <= 50 ...
- 【填坑向】spoj COT/bzoj2588 Count on a tree
这题是学主席树的时候就想写的,,, 但是当时没写(懒) 现在来填坑 = =日常调半天lca(考虑以后背板) 主席树还是蛮好写的,但是代码出现重复,不太好,导致调试的时候心里没底(虽然事实证明主席树部分 ...
- SPOJ bsubstr
题目大意:给你一个长度为n的字符串,求出所有不同长度的字符串出现的最大次数. n<=250000 如:abaaa 输出: 4 2 1 1 1 spoj上的时限卡的太严,必须使用O(N)的算法那才 ...
- HTTP状态码206和416
HTTP 2xx范围内的状态码表明了:"客户端发送的请求已经被服务器接受并且被成功处理了". TTP/1.1 200 OK是HTTP请求成功后的标准响应 HTTP/1.1 206状 ...
- 【SPOJ 7258】Lexicographical Substring Search
http://www.spoj.com/problems/SUBLEX/ 好难啊. 建出后缀自动机,然后在后缀自动机的每个状态上记录通过这个状态能走到的不同子串的数量.该状态能走到的所有状态的f值的和 ...
随机推荐
- Arnold+Shave 渲染毛发
Arnold是一款基于真实物理光照算法和光线追踪算法的照片级渲染器,参与过多部好莱坞大片的制作,公司官网是:www.solidangle.com,官网上有很多效果图: 这里自己用一个球体测试了一下效果 ...
- 自定义ListView适配器
继承BaseAdapter类 覆盖以下4个方法: @Override public int getCount() { return users.size(); } @Override public O ...
- CSS之照片翻转
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="C ...
- Java垃圾回收介绍(译)
在Java中,对象内存空间的分配与回收是由JVM中的垃圾回收进程自动完成的.与C语言不同的是,在Java中开发者不需要专门为垃圾回收写代码.这是使Java流行的众多特征之一,也帮助了程序员写出了更好的 ...
- (转) DockPanel 右键增加关闭,除此之外全部关闭的功能
在项目中新建一个class文件,代码如下: using System; using System.Collections.Generic; using System.ComponentModel; u ...
- makefile --文件文档经链接使用
生成.a 文件是什么? 在makefile的设置使得文件文档可以方便的使用,不用特意的加某些头文件 加入某些产生的链接包
- how to Enable Client Integration
i got a problem,the problem is list cant use export to excel button in sharepoint 2010. I found my a ...
- 印象笔记无法同步问题解决 Unable to send HTTP request: 12029
问题 今天突然发现本地软件不能访问网络. 包括: 印象笔记无法同步, 搜狗输入法无法登陆. 但其它上网正常. 思路及解决过程 因为chrome上网 ,qq上网均正常. 且同事可以正常使用. 推测是本地 ...
- 【原】在一般处理程序中设置session
using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using Syste ...
- html5学习笔记——2016/4
HTML5新增的结构元素: section article aside header hgroup footer nav figure HTML ...