SPOJ INUMInteresting Numbers 简单细节题
来源:互联网 发布:京东 淘宝 显卡 编辑:程序博客网 时间:2024/06/03 17:16
1 题意
给N个数,问有多少个无序数对(i,j)(其中,i<j),使得|a[i]-a[j]|达到最大值或者最小值。
点击打开链接
2 分析
虽然说是简单题,但是当时一直WA。
注意细节、特判,过程中可能会溢出所以都用long long,以及最重要的是、书写要条理一点。
如
5
1 1 1 1 1
5
1 1 1 2 2
3
#include <iostream>#include <math.h>#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;typedef long long ll;int n;const int maxn=1e5+10;ll a[maxn],b[maxn];ll min_num,max_num;ll res_min;ll res_max;int main(){ while(~scanf("%d",&n)){ for(int i=0;i<n;i++){ scanf("%lld",&a[i]); } sort(a,a+n); min_num=max_num=1; res_min=res_max=0; for(int i=1;i<n;i++){ if(a[i]==a[i-1]){ min_num++; } else{ break; } } for(int j=n-2;j>=0;j--){ if(a[j]==a[j+1]){ max_num++; } else{ break; } } res_max=(max_num*min_num); int flag=1; for(int i=1;i<n;i++){ if(a[i]==a[i-1]){ flag=0; break; } } if(flag){ for(int i=0;i<n-1;i++){ b[i]=a[i+1]-a[i]; } sort(b,b+n-1); res_min=1; for(int i=1;i<n;i++){ if(b[i]==b[i-1]){ res_min++; } else{ break; } } } else{ long long temp2=1; res_min=0; for(int i=1;i<n;i++){ if(a[i]==a[i-1]){ temp2++; } else{ if(temp2>1){ res_min+=(temp2)*(temp2-1)/2; temp2=1; } } } if(temp2>1){ res_min+=(temp2)*(temp2-1)/2; temp2=1; } } flag=1; for(int i=1;i<n;i++){ if(a[i]!=a[i-1]){ flag=0; break; } } if(flag){ res_max=(long long)((long long)n*(long long)(n-1))/2; res_min=res_max; } cout<<res_min<<" "<<res_max<<endl; }}
0 0
- SPOJ INUMInteresting Numbers 简单细节题
- 文章标题 SPOJ INUM : Interesting Numbers (细节)
- [思路题] spoj 11354 Amusing numbers
- SPOJ-BALNUM Balanced Numbers
- SPOJ BALNUM Balanced Numbers
- spoj 26130Binary numbers
- SPOJ BALNUM - Balanced Numbers
- SPOJ BALNUM - Balanced Numbers
- SPOJ 42. Adding Reversed Numbers
- 【SPOJ-TSHOW1】Amusing numbers【二进制】
- SPOJ BALNUMBalanced Numbers 数位dp
- SPOJ BALNUM BALNUM - Balanced Numbers
- SPOJ MARBLES(简单组合)
- SPOJ 6285. Another Game With Numbers
- SPOJ 16637. Non-Square Free Numbers
- [数位dp] spoj 10738 Ra-One Numbers
- [数位dp] spoj 10606 Balanced Numbers
- [数位dp] spoj 10738 Ra-One Numbers
- Log4j 日志详细用法
- 【linux】stat的三个时间戳
- Visual Studio 2010下开发VLC播放器环境搭建
- js处理json和字符串示例
- springmvc的rest分格
- SPOJ INUMInteresting Numbers 简单细节题
- 利用 Java.awt.Robot 模拟键盘输入遇到的几点问题(组合键,双引号)
- Spring4的知识应用总结(四)——Bean的生命周期和注解方式配置
- 插入式注解处理API(Pluggable Annotation Processing API)
- spark master web ui 端口8080被占用解决办法
- Spring事务属性详解
- linux学习笔记一, c语言程序的编译链接
- [WIN32]VB6.0用GDI+保存图像为BMP\JPG\PNG\GIF格式终结版。
- IC Compiler中给macro标记序号的方法