ural 1209. 1, 10, 100, 1000... 二分
来源:互联网 发布:arrayslice php 编辑:程序博客网 时间:2024/06/09 17:19
1209. 1, 10, 100, 1000...
Time limit: 1.0 second
Memory limit: 64 MB
Memory limit: 64 MB
Let's consider an infinite sequence of digits constructed of ascending powers of 10 written one after another. Here is the beginning of the sequence: 110100100010000… You are to find out what digit is located at the definite position of the sequence.
Input
There is the only integer N in the first line (1 ≤ N ≤ 65535). The i-th of N left lines contains the integer Ki — the number of position in the sequence (1 ≤ Ki ≤ 231 − 1) .
Output
You are to output N digits 0 or 1 separated with a space. More precisely, the i-th digit of output is to be equal to the Ki-th digit of described above sequence.
Sample
431476
0 0 1 0
Problem Author: Alexey Lakhtin
Problem Source: USU Open Collegiate Programming Contest October'2002 Junior Session
Problem Source: USU Open Collegiate Programming Contest October'2002 Junior Session
import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.io.PrintWriter;import java.math.BigInteger;import java.util.StringTokenizer;public class Main {public static void main(String[] args) {new Task().solve();}}class Task {InputReader in = new InputReader(System.in);PrintWriter out = new PrintWriter(System.out);int calc(long pos){long l = 1 , r = 65536 , s = -1 ;while(l <= r){long m = (l + r) >> 1 ; long sum = (1 + m) * m / 2 ; if(sum >= pos){ s = m ; r = m - 1 ; } else{ l = m + 1 ; }}s-- ;long sum = (1 + s) * s / 2 ;if(sum + 1 == pos){return 1 ;}return 0 ; }void solve() {int t = in.nextInt() ;while(t-- > 0){out.println(calc(in.nextLong())) ;}out.flush();}}class InputReader {public BufferedReader reader;public StringTokenizer tokenizer;public InputReader(InputStream stream) { reader = new BufferedReader(new InputStreamReader(stream), 32768);tokenizer = new StringTokenizer("");}private void eat(String s) {tokenizer = new StringTokenizer(s);}public String nextLine() {try {return reader.readLine();} catch (Exception e) {return null;}}public boolean hasNext() {while (!tokenizer.hasMoreTokens()) {String s = nextLine();if (s == null)return false;eat(s);}return true;}public String next() {hasNext();return tokenizer.nextToken();}public int nextInt() {return Integer.parseInt(next());}public int[] nextInts(int n){int[] nums = new int[n] ;for(int i = 0 ; i < n ; i++){nums[i] = nextInt() ;}return nums ;}public long nextLong() {return Long.parseLong(next());}public double nextDouble() {return Double.parseDouble(next());}public BigInteger nextBigInteger() {return new BigInteger(next());}}
阅读全文
0 0
- ural 1209. 1, 10, 100, 1000... 二分
- URAL 1209. 1, 10, 100, 1000... (规律 + 二分)
- timus 1209. 1, 10, 100, 1000... URAL 解题报告
- (beginner problems) ural 1209 1, 10, 100, 1000...
- ural 1613【hash+二分】
- URAL - 1066 Garland(二分)
- URAL 1133 二分
- URAL 1153. Supercomputer 二分求根
- Ural 1542. Autocompletion(二分)
- 【二分答案&&最短路】URAL
- URAL 1229贴地砖 . 二分图匹配
- Ural 1428. Jedi Riddle 二分求幂
- ural 1106. Two Teams 二分图染色
- ural 1106. Two Teams 二分图染色
- ural 1076 Trash 二分图KM
- ural 1998 The old Padawan (模拟+二分)
- Ural 1998 The old Padawan(二分)
- URAL 1109 简单二分图匹配
- MapReduce工作原理
- 怎么运行jar文件?如某个安装文件是jar文件,怎么运行?
- 为什么HDFS中的块如此之大?
- Android图片加载框架Glide的使用解析
- linux学习 shell脚本
- ural 1209. 1, 10, 100, 1000... 二分
- 欢迎使用CSDN-markdown编辑器
- tensorflow: tf.assign探究
- 53. Maximum Subarray
- Python设计模式-适配器模式
- ios33款实用库
- 有一种忙,叫做很有希望
- laravel php -S 自定义域名 -t 目录 ,报错 PHP Fatal error: Unknown: Failed opening required 'public/' (include
- ural 1005. Stone Pile dp