POJ-1019 Number Sequence
来源:互联网 发布:网络心理咨询平台推荐 编辑:程序博客网 时间:2024/06/01 23:33
Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 37441 Accepted: 10807
Description
A single positive integer i is given. Write a program to find the digit located in the position i in the sequence of number groups S1S2...Sk. Each group Sk consists of a sequence of positive integer numbers ranging from 1 to k, written one after another.
For example, the first 80 digits of the sequence are as follows:
11212312341234512345612345671234567812345678912345678910123456789101112345678910
For example, the first 80 digits of the sequence are as follows:
11212312341234512345612345671234567812345678912345678910123456789101112345678910
Input
The first line of the input file contains a single integer t (1 ≤ t ≤ 10), the number of test cases, followed by one line for each test case. The line for a test case contains the single integer i (1 ≤ i ≤ 2147483647)
Output
There should be one output line per test case containing the digit located in the position i.
Sample Input
283
Sample Output
22
Source
Tehran 2002, First Iran Nationwide Internet Programming Contest
#include <cstdio>#include <cmath>#include <iostream>#define MAXN 2147483647int num,tot,T,now;long long f[31270],d[31270],ans[145240];using namespace std;int got(int x){int num = 0;while(x){num++;x/=10;}return num;}void Insert(int x){int length = got(x);int l = length; while(x){ans[tot+length] = x%10;x/=10;length--;}tot+=l;} int main(){for(int i = 1;i;i++){f[i] = f[i-1] + got(i);d[i] = f[i] + d[i-1];num++;if(d[i-1] >= MAXN) break;}for(int i = 1;i <= num;i++) Insert(i);cin>>T;for(int time = 1;time <= T;time++){cin>>now;int s = 1,t = num;while(s != t){int mid = (s+t)/2;if(d[mid-1]+1 <= now) s = mid+1;else t = mid;}s--;cout<<ans[now-d[--s]]<<endl;}}
0 0
- POJ 1019 Number Sequence
- POJ 1019 Number Sequence
- poj 1019 Number Sequence
- poj 1019 Number Sequence
- POJ 1019 Number Sequence
- poj 1019 Number Sequence
- POJ-1019 Number Sequence
- POJ 1019 Number Sequence
- poj 1019 Number Sequence
- poj 1019 Number Sequence
- POJ 1019 Number Sequence
- poj 1019 Number Sequence
- POJ 1019 Number Sequence
- POJ 1019 Number Sequence
- poj 1019 Number Sequence
- POJ 1019 Number Sequence
- poj 1019 Number Sequence
- POJ 1019 Number Sequence
- 59. Spiral Matrix II
- linux中文件压缩与解压缩学习心得
- 基于图的关键词抽取
- HDU 2553 N皇后问题
- UDP和TCP的区别
- POJ-1019 Number Sequence
- python 笔记
- 字符串之一:匹配相关
- 64. Minimum Path Sum
- 设计模式笔记
- (OK) install vmware12 in fedora23
- SPOJ 8222 NSUBSTR 后缀自动机
- hdu4717 The Moving Points 三分求函数最小值
- HTML5第六次培训(AJAX基础-http协议)