http://acm.hust.edu.cn/vjudge/contest/view.action?cid=83146#problem/C
C - 学

Crawling in process... Crawling failed Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u

Submit Status

Description

Ray又对数字的列产生了兴趣:
现有四张卡片,用这四张卡片能排列出很多不同的4位数,要求按从小到大的顺序输出这些4位数。
 

Input

每组数据占一行,代表四张卡片上的数字(0<=数字<=9),如果四张卡片都是0,则输入结束。
 

Output

对每组卡片按从小到大的顺序输出所有能由这四张卡片组成的4位数,千位数字相同的在同一行,同一行中每个四位数间用空格分隔。
每组输出数据间空一行,最后一组数据后面没有空行。
 

Sample Input

1 2 3 4
1 1 2 3
0 1 2 3
0 0 0 0
 

Sample Output

1234 1243 1324 1342 1423 1432
2134 2143 2314 2341 2413 2431
3124 3142 3214 3241 3412 3421
4123 4132 4213 4231 4312 4321
 
1123 1132 1213 1231 1312 1321
2113 2131 2311
3112 3121 3211
 
1023 1032 1203 1230 1302 1320
2013 2031 2103 2130 2301 2310
3012 3021 3102 3120 3201 3210
在这里我想提一下Presentation Error是格式错误,其实离正确答案很近了,也许就差一个回车、tab或空格之类的这时候你就要检查你的程序的输出和题上的要求是否一致
#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<string.h>
using namespace std;
#define Swap(a, b)(t=a, a=b, b=t)
#define N 26
int origin[4], later[N], m, q[5][30], a, b, c, d, ff=0;
void perm(int s, int e);
void print();
int main()
{
int i, j, t, f=0;
while(1)
{
a=0;b=0;c=0;d=0;m=0; for(i=0; i<4; i++)
scanf("%d", &origin[i]); if(origin[0]==0&&origin[1]==0&&origin[2]==0&&origin[3]==0)
break;
if(f==1)
printf("\n");
else
f=1;//我就是吧上面那个和这个弄反了才导致错了 for(i=0; i<3; i++)
for(j=i+1; j<4; j++)
{
if(origin[i]>origin[j])
Swap(origin[i],origin[j]);
} later[m++]=origin[0];
for(i=1; i<4; i++)
{
if(origin[i]!=origin[i-1])
later[m++]=origin[i];
}
if(later[0]==0)
ff=1;
perm(0, 3);
print();
}
}
void perm(int s, int e)
{
int i, t, x, flag;
if(s==e)
{
x=0;
if(origin[0]!=0)
{
for(i=0; i<=e; i++)
x=x*10+origin[i];
for(i=0; i<m; i++)
if(origin[0]==later[i])
flag=i;
switch (flag)
{
case 0: q[0][a++]=x; break;
case 1: q[1][b++]=x; break;
case 2: q[2][c++]=x; break;
case 3: q[3][d++]=x; break;
}
} return;
}
for(i=s; i<=e; i++)
{
Swap(origin[i], origin[s]);
perm(s+1, e);
Swap(origin[i], origin[s]);
}
}
void print()
{
int i, j, k, l, t;
for(j=0; j<m; j++)
{
switch(j)
{
case 0: k=a; break;
case 1: k=b; break;
case 2: k=c; break;
case 3: k=d; break;
}
for(i=0; i<k-1; i++)
for(l=i+1; l<k; l++)
if(q[j][i]>q[j][l])
Swap(q[j][i],q[j][l]);
}
for(j=0; j<m; j++)
{
if(ff==1)
{
j++;
ff=0;
}
switch(j)
{
case 0: k=a; break;
case 1: k=b; break;
case 2: k=c; break;
case 3: k=d; break;
}
printf("%d", q[j][0]);
for(i=1; i<k; i++)
{
if(q[j][i]!=q[j][i-1])
printf(" %d", q[j][i]);
}
printf("\n");
}
}

暑假集训第一周比赛C题的更多相关文章

  1. 暑假集训第一周比赛G题

    http://acm.hust.edu.cn/vjudge/contest/view.action?cid=83146#problem/G G - 向 Crawling in process... C ...

  2. STL 入门 (17 暑假集训第一周)

    快速全排列的函数 头文件<algorithm> next_permutation(a,a+n) ---------------------------------------------- ...

  3. AYIT-2020 609暑假集训第一周周赛题 A - A计划

    可怜的公主在一次次被魔王掳走一次次被骑士们救回来之后,而今,不幸的她再一次面临生命的考验.魔王已经发出消息说将在T时刻吃掉公主,因为他听信谣言说吃公主的肉也能长生不老.年迈的国王正是心急如焚,告招天下 ...

  4. HUAS 2018暑假第一周比赛-题解

    小朋友们有问题评论区 :) B. 子串计算 难度系数 : ☆ Main idea : 模拟 暴力 按照题目的要求一步一步来就行了 之所以可行的原因是从左往右扫,如果扫到一个子串,把它删除掉之后,假设当 ...

  5. (未完成)catalyst-system WriteUp(2019暑假CTF第一周reverse)

    目录 预备学习--Linux实践:ELF文件格式分析 一.概述 二.分析ELF文件头(ELF header) 三.通过文件头找到section header table,理解其内容 四.通过secti ...

  6. CodeForces 478B 第六周比赛B题

    B - B Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u   Descriptio ...

  7. LightOJ 1317 第六周比赛A题

    A - A Time Limit:2000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu   Description Y ...

  8. HUAS 2017暑假第六周比赛-题解

    A.Parenthesis 括号匹配的问题有一种经典的做法. 将左括号看成1,右括号看成-1,做一遍前缀和sum. 括号序列是合法的当且仅当\(sum[n]=Min(sum[1],sum[2].... ...

  9. 欢迎来到地狱 WriteUp(2019暑假CTF第一周misc)

    目录 0707,0708,0709 题目地址:欢迎来到地狱 1.地狱伊始.jpg 1.5地狱之声.wav 2.第二层地狱.docx 3.快到终点了.zip 参考 0707,0708,0709 题目地址 ...

随机推荐

  1. FishiGUI系统架构分析 和层次结构 二

    FishiGUI的类型 FIshiGUI属于为应用程序提供图形界面服务的框架系统.它并不直接与终于用户交互(负责与终于用户交互的是在FishiGUI基础上开发的应用程序).而是接受操作系统传来的硬件消 ...

  2. 详述Centos中的ftp命令的使用方法

    ftp服务器在网上较为常见,Linux ftp命令的功能是用命令的方式来控制在本地机和远程机之间传送文件,这里详细介绍Linux ftp命令的一些经常使用的命令,相信掌握了这些使用Linux 进行ft ...

  3. threw load() exception java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet(maven项目git后)

    maven项目git全新项目后启动服务出现的, 错误原因: 进入到tomcat的部署路径.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpw ...

  4. Windows下UEFI环境的搭建

    Windows下UEFI环境的搭建 一.环境准备 1. 安装2012及以上VS https://visualstudio.microsoft.com/ 2.下载NASM 2.13.03  http:/ ...

  5. Hadoop-2.6.0上调用C的API实现相似云盘的功能

    Hadoop-2.6.0上调用C的API实现类似云盘的功能(上传.下载.删除,重命名) 測试系统:CentOS6.6, hadoop-2.6.0 本次測试是调用hadoop下的C的API来訪问HDFS ...

  6. Trie树学习

    这几天在看Hadoop的排序,用到了有TotalSortPartition,其中用到了一种叫做trie树的数据结构,每次看到这种自己之前没有听过的数据结构就想去看一下原理,然后再网上看几篇博客,有时间 ...

  7. ntp服务及其配置

    集群中使用NTP服务 简介 之前搭建zookeeper时报了一个错,我以为是ntp的问题,结果不是.这里详细学习一下如何在集群中使用ntp服务. 什么是ntp服务 来自ntp的百度百科: NTP服务器 ...

  8. 使用Percona监控插件监控MySQL

    1.使用Percona监控插件监控MySQL yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/per ...

  9. Teradata架构

    Teradata在整体上是按Shared Nothing 架构体系进行组织的,他的定位就是大型数据仓库系统,定位比较高,他的软硬件都是NCR自己的,其他的都不识别:所以一般的企业用不起,价格很贵.由于 ...

  10. 记pytorch版faster rcnn配置运行中的一些坑

    记pytorch版faster rcnn配置运行中的一些坑 项目地址 https://github.com/jwyang/faster-rcnn.pytorch 一般安装配置参考README.md文件 ...