Re: 11340 - Newspaper
Posted: Thu Dec 20, 2012 7:22 am
thanks brian...that's was kewl..
Code: Select all
AC
Code: Select all
AC
Code: Select all
#include <stdio.h>
#include <string.h>
using namespace std;
int main()
{
unsigned int n, i, k, u, temp_value, m, final_value = 0;
unsigned char temp_char;
unsigned char values[1000];
scanf("%d", &n);
for (i = 0; i < n; i++)
{
scanf("%d", &k);
memset(values, 0, sizeof values);
final_value = 0;
for (u = 0; u < k; u++)
{
scanf(" %c %d", &temp_char, &temp_value);
values[temp_char] += temp_value;
}
scanf("%d", &m);
for (u = 0; u < m; u++)
{
while (true)
{
scanf("%c", &temp_char);
if (temp_char == '\n')
{
break;
}
final_value += values[temp_char];
}
}
printf("%.2f$\n", (float) final_value / 100);
}
return 0;
}
brianfry713 wrote:Change the way you parse the input. Here's what I did to get AC in ANSI C:Code: Select all
unsigned char c, line[10010]; int val; ... gets(line); sscanf(line,"%c %d",&c,&val); ...
Code: Select all
#include <stdio.h>
#include <string.h>
using namespace std;
int main()
{
unsigned int n, i, k, u, temp_value, m, final_value = 0;
char temp_char;
int values[1000];
scanf("%d", &n);
for (i = 0; i < n; i++)
{
scanf("%d\n", &k);
memset(values, 0, sizeof values);
final_value = 0;
for (u = 0; u < k; u++)
{
scanf("%c %d\n", &temp_char, &temp_value);
values[temp_char] += temp_value;
}
scanf("%d", &m);
getchar();
for (u = 0; u < m; u++)
{
while (true)
{
scanf("%c", &temp_char);
if (temp_char == '\n')
{
break;
}
final_value += values[temp_char];
}
}
printf("%.2lf$\n", (double) final_value / 100);
}
return 0;
}