codeforces gym 100645A
2016-07-03 15:35
405 查看
将以前写过的一些程序搬运一下。
codeforces挂了,只能看到我的代码,不要怪我。
AC代码
codeforces挂了,只能看到我的代码,不要怪我。
AC代码
// // main.cpp // A.a.c // // Created by zhangdenny on 16/5/22. // Copyright (c) 2016年 Kirito. All rights reserved. // #include <functional> #include <algorithm> #include <exception> #include <stdexcept> #include <streambuf> #include <iterator> #include <string.h> #include <stdlib.h> #include <typeinfo> #include <valarray> #include <iostream> #include <sstream> #include <istream> #include <stdio.h> #include <climits> #include <clocale> #include <complex> #include <csetjmp> #include <csignal> #include <cstdarg> #include <cstddef> #include <ctype.h> #include <cassert> #include <cstdlib> #include <utility> #include <cstring> #include <numeric> #include <ostream> #include <cwctype> #include <fstream> #include <iomanip> #include <math.h> #include <bitset> #include <cctype> #include <string> #include <vector> #include <limits> #include <locale> #include <memory> #include <cerrno> #include <iosfwd> #include <cfloat> #include <cstdio> #include <cwchar> #include <cmath> #include <ctime> #include <deque> #include <queue> #include <stack> #include <list> #include <ios> #include <map> #include <set> #include <new> #define fi first #define se second #define np next_permutation #define ll long long using namespace std; bool used[5]; set<int> ans; void dfs(int lft,int a[]) { if(lft==1) { for(int i=0;i<4;i++) { if(!used[i]) ans.insert(a[i]); } } else { for(int i=0;i<4;i++) if(!used[i]) { for(int j=0;j<4;j++) if(!used[j] && i!=j) { int old=a[i]; used[j]=true; a[i]=old+a[j]; dfs(lft-1,a); a[i]=old-a[j]; dfs(lft-1,a); a[i]=old*a[j]; dfs(lft-1,a); if(a[j]!=0 && old%a[j]==0) a[i]=old/a[j]; dfs(lft-1,a); a[i]=old; used[j]=false; } } } } int main() { int testc=0; while(true) { testc++; int a,b,c,d; cin>>a>>b>>c>>d; if(a==0 && b==0 && c==0 && d==0) return 0; ans.clear(); int e[5]; e[0]=a; e[1]=b; e[2]=c; e[3]=d; dfs(4,e); int sum=0,mx=-1e9,ans1=0,ans2=0; for(set<int>::iterator it=ans.begin();it!=ans.end();it++) { if(mx+1!=*it) { if(sum>=ans2) { ans2=sum; ans1=mx-sum+1; } sum=1; mx=*it; } else { mx++; sum++; } } if(sum>=ans2) { ans2=sum; ans1=mx-sum+1; } int ans3=ans1+ans2-1; cout<<"Case "<<testc<<": "<<ans1<<" to "<<ans3<<endl; } return 0; }
相关文章推荐
- 如何组织构建多文件 C 语言程序(二)
- 如何写好 C main 函数
- Lua和C语言的交互详解
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言中fchdir()函数和rewinddir()函数的使用详解
- C语言内存对齐实例详解
- C语言编程中统计输入的行数以及单词个数的方法
- C语言自动生成enum值和名字映射代码
- C语言练习题:自由落体的小球简单实例
- 使用C语言判断英文字符大小写的方法
- c语言实现的带通配符匹配算法
- C语言实现顺序表基本操作汇总
- C语言中进制知识汇总
- C语言判断一个数是否是2的幂次方或4的幂次方
- C语言中计算正弦的相关函数总结
- 使用C语言详解霍夫曼树数据结构
- C语言实现选择排序、冒泡排序和快速排序的代码示例