中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > 综合其它
【USACO--Section 1.1】Problem 1
作者:未知 时间:2005-07-27 23:31 出处:CSDN 责编:chinaitpower
              摘要:【USACO--Section 1.1】Problem 1

Your Ride Is Here

It is a well-known fact that behind every good comet is a UFO. These UFOs often come to collect loyal supporters from here on Earth. Unfortunately, they only have room to pick up one group of followers on each trip. They do, however, let the groups know ahead of time which will be picked up for each comet by a clever scheme: they pick a name for the comet which, along with the name of the group, can be used to determine if it is a particular group's turn to go (who do you think names the comets?). The details of the matching scheme are given below; your job is to write a program which takes the names of a group and a comet and then determines whether the group should go with the UFO behind that comet.

Both the name of the group and the name of the comet are converted into a number in the following manner: the final number is just the product of all the letters in the name, where "A" is 1 and "Z" is 26. For instance, the group "USACO" would be 21 * 19 * 1 * 3 * 15 = 17955. If the group's number mod 47 is the same as the comet's number mod 47, then you need to tell the group to get ready! (Remember that "a mod b" is the remainder left over after dividing a by b; 34 mod 10 is 4.)

Write a program which reads in the name of the comet and the name of the group and figures out whether according to the above scheme the names are a match, printing "GO" if they match and "STAY" if not. The names of the groups and the comets will be a string of capital letters with no spaces or punctuation, up to 6 characters long.

Examples:

Input

Output

COMETQ

HVNGAT

GO

ABSTAR

USACO

STAY

PROGRAM NAME: ride

INPUT FORMAT

Line 1:

An upper case character string of length 1..6 that is the name of the comet.

Line 2:

An upper case character string of length 1..6 that is the name of the group.

NOTE: The input file has a newline at the end of each line but does not have a "return". Sometimes, programmers code for the Windows paradigm of "newline" followed by "return"; don't do that! Use simple input routines like "readln" (for Pascal) and, for C/C++, "fscanf" and "fid>>string".

SAMPLE INPUT (file ride.in)

COMETQ

HVNGAT

OUTPUT FORMAT

A single line containing either the word "GO" or the word "STAY".

SAMPLE OUTPUT (file ride.out)

GO

My Answer

/*

ID: horisly1

PROG: ride

LANG: C++

*/

#include <iostream>

#include <fstream>

#include <string>

using namespace std;

 

int main() {

    ifstream fin ("ride.in");

    ofstream fout ("ride.out");

    string gpName, ctName;

    fin >> gpName >> ctName;

    long gp = 1, ct = 1;

    for(int i=0; i<gpName.size(); i++)

        gp *= (gpName[i]-64);

    for(int i=0; i<ctName.size(); i++)

        ct *= (ctName[i]-64);

    if( (gp%47) == (ct%47) )

        fout << "GO" << endl;

    else

        fout << "STAY" << endl;

    return 0;

}

Here is a prototype solution: From the WebSite

#include <stdio.h>

#include <ctype.h>

 

int

hash(char *s)

{

       int i, h;

 

       h = 1;

       for(i=0; s[i] && isalpha(s[i]); i++)

              h = ((s[i]-'A'+1)*h) % 47;

       return h;

}

 

void

main(void)

{

       FILE *in, *out;

       char comet[100], group[100];  /* bigger than necessary, room for newline */

 

       in = fopen("input.txt", "r");

       out = fopen("output.txt", "w");

 

       fgets(comet, sizeof comet, in);

       fgets(group, sizeof group, in);

 

       if(hash(comet) == hash(group))

              fprintf(out, "GO\n");

       else

              fprintf(out, "STAY\n");

       exit (0);

}

Solutions generally run in under 0.01 seconds.

 


关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有