Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Problem 10474 - Where is the Marble? (time 0.052)
- URL: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=16&page=show_problem&problem=1415
- Alexey Solodovnikov (alexey.solodovnikov@gmail.com)
- */
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <time.h>
- #define SIZE 16*1024
- #define N 10001
- static unsigned int values[N];
- static int buffer_size = 0;
- static int buffer_pos = -1;
- static char buffer[SIZE];
- unsigned int readInt()
- {
- unsigned int value = 0;
- unsigned int digits = 0;
- char b;
- if (buffer_pos == -1)
- {
- buffer_size = fread(buffer, 1, SIZE, stdin);
- buffer_pos = 0;
- }
- while(buffer_size > 0)
- {
- if (buffer_pos == buffer_size)
- {
- buffer_size = fread(buffer, 1, SIZE, stdin);
- buffer_pos = 0;
- }
- while(buffer_pos < buffer_size)
- {
- b = buffer[buffer_pos++];
- if (b == '\n' || b == ' ')
- {
- return value;
- }
- else
- {
- value = value*10 + (b - '0');
- digits++;
- }
- }
- }
- return value;
- }
- int main(int argc, char **argv)
- {
- unsigned int n, q, num, max, c = 0;
- while(1)
- {
- c++;
- n = readInt();
- q = readInt();
- if(n==0 && q==0) break;
- max = 0;
- memset(values, 0, N * sizeof(unsigned int));
- for(unsigned int i=0; i<n; i++)
- {
- num = readInt();
- values[num]++;
- if(num > max) max = num;
- }
- unsigned int pos = 1, temp;
- for(unsigned int i=0; i <= max; i++)
- {
- if(values[i] !=0){
- temp = values[i];
- values[i] = pos;
- pos += temp;
- }
- }
- printf("CASE# %d:\n", c);
- unsigned qval;
- for(unsigned int i=0; i<q; i++)
- {
- qval = readInt();
- int ret = values[qval];
- if(ret == 0)
- printf("%d not found\n", qval);
- else
- printf("%d found at %d\n", qval, ret);
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement