UVA 1363(p338)----Joseph's Problem
2016-02-26 00:23
253 查看
#include<iostream> #include<cstdio> using namespace std; int n,k; int main() { while(scanf("%d%d",&n,&k)==2&&n) { long long ans=0; int i=1; while(i<=n) { long long cnt=n-i; long long p=k/i; long q=k%i; if(p>0) cnt=min(cnt,q/p); ans+=(cnt+1)*q-cnt*(cnt+1)/2*p; //cout<<i<<" "<<cnt<<" "<<p<<" "<<q<<" "<<cnt<<" "<<ans<<endl; i+=cnt+1; } printf("%lld\n",ans); } return 0; }
相关文章推荐
- C++ 内存分布,编译与运行阶段探索?(暂时不确定标题)
- MongoDB性能优化
- Hibernate.initialize(Obj)用法
- UVA 1354(p197)----Mobile Computing
- hibernate里的session.get()和session.load()区别以及Hibernate.initialize(Obj)用法
- BigInteger大整数类高精度
- struts2自定义拦截器笔记
- UVA 11806 Cheerleaders 拉拉队
- 友元函数与成员函数的一点区别
- leetcode-211-Add and Search Word - Data structure design
- lintcode: Remove Nth Node From End of List
- leetcode 257:Binary Tree Paths
- 网站搭建指南
- 数据机构的基本定义
- tomcat启动报警告错误:Setting property 'maxTheads' to '125' did not find a matching property.
- Android studio ndk环境配置
- limitNumber
- RecyclerView的使用(3)之添加Header和Footer
- Django框架学习
- Linux精讲——文件查看命令