UOJ #9. 【UTR #1】vfk的数据
2016-07-06 21:12
337 查看
http://uoj.ac/problem/9
uoj第一次test题目
注意下细节 考虑的全面一点
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
struct H
{
char s[200];
int v;
};int n,st;
bool cmp(H a,H b)
{
if(a.v!=b.v) return a.v<b.v;
for(int i=st;;i++)
if(a.s[i]!=b.s[i])
return a.s[i]<b.s[i];
//return a.v<b.v;
}
H num[10000+10];
int main()
{
cin >>n;
for(int i=1;i<=n;i++) scanf("%s",num[i].s+1);
st=strlen(num[1].s+1)-3;
while(num[1].s[st-1]>='0'&&num[1].s[st-1]<='9') st--;
for(int i=1;i<=n;i++)
num[i].v=strlen(num[i].s+1)-st;
sort(num+1,num+n+1,cmp);
for(int i=1;i<=n;i++) printf("%s\n",num[i].s+1);
return 0;
}
uoj第一次test题目
注意下细节 考虑的全面一点
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
struct H
{
char s[200];
int v;
};int n,st;
bool cmp(H a,H b)
{
if(a.v!=b.v) return a.v<b.v;
for(int i=st;;i++)
if(a.s[i]!=b.s[i])
return a.s[i]<b.s[i];
//return a.v<b.v;
}
H num[10000+10];
int main()
{
cin >>n;
for(int i=1;i<=n;i++) scanf("%s",num[i].s+1);
st=strlen(num[1].s+1)-3;
while(num[1].s[st-1]>='0'&&num[1].s[st-1]<='9') st--;
for(int i=1;i<=n;i++)
num[i].v=strlen(num[i].s+1)-st;
sort(num+1,num+n+1,cmp);
for(int i=1;i<=n;i++) printf("%s\n",num[i].s+1);
return 0;
}
相关文章推荐
- SQL注入攻防入门详解
- [译]JavaScript中的Prototype
- gops-企业级集中身份认证及授权管理实践freeipa
- java.lang.NoClassDefFoundError: org/apache/ibatis/type/TypeReference
- 校外实习-7.5
- HDU 4704 Sum (高精度+快速幂+费马小定理+二项式定理)
- wifi eth gprs 网络自动切换 脚本
- Android——事件分发机制
- 将应用变成库(AndroidStudio)
- UML之类图
- 提取不重复的整数
- Swift编程规范之 Coding Style
- 1010 Problem J
- poj 3784 Running Median 二叉堆
- 基于MapReduce的手机上网流量统计分析
- python环境安装
- BZOJ 4518: [Sdoi2016]征途
- 提高项目24-删除数组元素
- CF355div2
- 新生练习2