سلام
يكي بگه اينACM چيه كه همه در موردش بحث مي كنند ؟
مسابقه بین المللی برنامه نویسی دانشگاهی.یه مسابقه است که مغزای برنامه نویسی توی اون شرکت میکنند و پشتیبانش هم شرکت IBM است.
سایت رسمی:
کد:
http://icpc.baylor.edu/icpc
سلام
يكي بگه اينACM چيه كه همه در موردش بحث مي كنند ؟
http://icpc.baylor.edu/icpc
خوب هر کی در حد وسعش می تونه سوال حل کنه...ما هم تازه اول راهیم دیگه...توی ACM از این سوالها هم میدن؟
این که خیلی ساده است.
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream cin("A.in");
// ofstream cout("test.out");
int T,N;
cin >> T;
while(T--)
{
int arr[1000]={0},a,b,mx=-1;
char ch;
cin >> N;
for(int n=0; n<N; n++)
{
cin >> ch >> a >> b;
mx = b>mx ? b : mx;
for(;a<b; a++)
arr[a]++;
}
for(int i=0; i<mx; i++)
if(arr[i])
cout << ((char)(arr[i] -1 + 'A')) ;
cout << endl;
}
return 0;
}
خوب هر کی در حد وسعش می تونه سوال حل کنه...ما هم تازه اول راهیم دیگه...
اگه مشکلی نباشه منم کد خودم رو برای سوال اول (Ancient keyboard) اینجا می ذارم لطفا راهنمایی کنید اگه مشکلی هست...اصلا درست جواب می ده؟
ممنون...کد:#include <iostream> #include <fstream> using namespace std; int main() { ifstream cin("A.in"); // ofstream cout("test.out"); int T,N; cin >> T; while(T--) { int arr[1000]={0},a,b,mx=-1; char ch; cin >> N; for(int n=0; n<N; n++) { cin >> ch >> a >> b; mx = b>mx ? b : mx; for(;a<b; a++) arr[a]++; } for(int i=0; i<mx; i++) if(arr[i]) cout << ((char)(arr[i] -1 + 'A')) ; cout << endl; } return 0; }
من تعجبم از این بود که این سوال نسبت به سوال جنگل و بحران نیرو یه دنیا تفاوت داشته.حتی نسبت به Ancient keyboard.
------------------------
من که چیزی از C++ سر در نمیارم.
//uva 151 by RED-C0DE
#include <iostream>
//#include <fstream>
using namespace std;
struct node
{
int val;
node * next;
node * prev;
};
void make_List(node * p, int n)
{
p->val= 2;
node * tmp= p;
for(int i=3; i<=n; i++)
{
tmp->next = new node();
tmp->next->prev = tmp;
tmp =tmp->next;
tmp->val = i;
}
tmp->next = p;
p->prev = tmp;
}
int main()
{
//ifstream cin("test.in");
int N;
while(cin >> N && N)
{
if(N==13)
{
cout << 1 << endl;
continue;
}
node * head = new node();
make_List(head,N);
int m=2;
while(1)
{
for(int i=1; i<m; i++)
head= head->next;
if(head->next == head )
{
if(head->val ==13)
{
cout << m << endl;
break;
}
else
{
m++;
make_List(head,N);
}
}
else
{
node * tmp= head;
head->prev->next = head->next;
head->next->prev = head->prev;
head = NULL;
head = tmp->next ;
}
}
}
return 0;
}
منظورت رو متوجه نشدم...
این کدی که من فرستادم با C++ مربوط به سوال Ancient Keyboard هست...مشکلش چیه؟
یعنی چی یه دنیا تفاوت داره!!!
cout << ((char)(arr[i] -1 + 'A')) ;
با همین برنامه می تونین با نحوه کار کردن با فایلها در C++ آشنا بشین...کسی از دوستان میتونه در مورد خواندن از فایل و نوشتن در فایل کمی برام توضیح بده.
//Ancient keyboard - sharif 2005
#include <iostream>
#include <fstream> کتابخانه fstream برای کار کردن با فایلها
using namespace std;
int main()
{
ifstream cin("A.in"); به اینصورت استفاده می کنم...از این به بعد توی تابع main هر جا که cin استفاده کنم یعنی داره از فایل می خونه ifstream برای اینکه بتونم توی برنامم از یک فایل بصورت ورودی استفاده کنم از،
ofstream cout("test.out"); تمام چیزایی که برای ifstream گفته شد برای ofstream هم صادقه و در اینجا cout رو یک نوع فایل خروجی تعریف کردم تا بتونم توش بنویسم...هر جا که cout استفاده کردم یعنی توی فایل بنویس
int T,N;
cin >> T; تعداد تست کیسا رو می خونه
while(T--) این حلقه هر دفعه مقدار T رو یکی کم می کنه تا به صفر برسه که در اونصورت می یاد بیرون
{
int arr[1000]={0},a,b,mx=-1;
char ch;
...
...
اگه برنامه نویسی دوست داشته باشی می تونی توی این وادی چیزای خوبی ببینی و یاد بگیری...من نفهميدم كه اين acm چيه ؟
خودت سوالای خوبی می ذاری ... یک سوال دیگه هم خودت انتخاب کن و بذار...کسی سوال نداره؟
static void Mobadel(string Word)
{
char[] Sedadar = { char.Parse("a"), char.Parse("i"), char.Parse("o"), char.Parse("u"), char.Parse("e") };
int k;
bool found = false ;
char[] Tempword = Word.ToCharArray();
int a = Word.Length;
if (Tempword[a - 1] == char.Parse("y"))
{
found = false ;
for (k = 0; k < 5; k++)
if (Tempword[a - 2] == Sedadar[k])
found = true;
if (found == true)
{
for (k = 0; k < a; k++)
Console.Write(Tempword[k]);
Console.Write("s");
}
else
{
for (k = 0; k < a-1; k++)
Console.Write(Tempword[k]);
Console.Write("ies");
}
}
else if ((Tempword[a - 1] == char.Parse("h") && (Tempword[a - 2] == char.Parse("c") || Tempword[a - 2] == char.Parse("s")))
|| Tempword[a - 1] == char.Parse("s") || Tempword[a - 1] == char.Parse("o")
|| Tempword[a - 1] == char.Parse("x"))
{
for (k = 0; k < a; k++)
Console.Write(Tempword[k]);
Console.Write("es");
}
else
{
for (k = 0; k < a; k++)
Console.Write(Tempword[k]);
Console.Write("s");
}
Console.WriteLine();
}
static void Main(string[] args)
{
string[,] Special;
string[] Words;
int i, j;
int N, L;
Console.WriteLine("Please Enter L:");
while (true)
{
L = Int32.Parse(Console.ReadLine());
if (1 <= L && L <= 20)
break;
else
Console.WriteLine("Please Enter L between 1 and 20:");
}
Console.WriteLine("Please Enter N:");
while (true)
{
N = Int32.Parse(Console.ReadLine());
if (1 <= N && N <= 100)
break;
else
Console.WriteLine("Please Enter L between 1 and 100:");
}
Console.WriteLine("Please Enter Special Words:");
Special = new string[L, 2];
Words = new string[N];
for (i = 0; i < L; i++)
{
Console.Write("Word: ");
Special[i, 0] = Console.ReadLine();
Console.Write("Shekle Jam: ");
Special[i, 1] = Console.ReadLine();
}
Console.WriteLine("Enter Words:");
for (i = 0; i < N; i++)
Words[i] = Console.ReadLine();
Console.WriteLine();
for (i = 0; i < N; i++)
{
for (j = 0; j < L; j++)
if (Words[i] == Special[j, 0])
{
Console.WriteLine(Special[j, 1]);
break;
}
else
{
Mobadel(Words[i]);
continue;
}
}
}
درایه های یک ماتریس 5x6 را از ورودی گرفته
الف)میانگین درایه های هر سطر را چاپ کند
ب)" " " هر ستون " " "
ج)بزرگترینمقدار هر سطر را چاپ کند
د) " " " " هر ستون " " " "
نکته : به کمک تابع حل شوذ
درایه های یک ماتریس 5x6 را از ورودی گرفته
الف)میانگین درایه های هر سطر را چاپ کند
ب)" " " هر ستون " " "
ج)بزرگترینمقدار هر سطر را چاپ کند
د) " " " " هر ستون " " " "
نکته : به کمک تابع حل شوذ
//uva#11233 "Deli Deli" ~ C0DED by RED-C0DE
#include <iostream>
#include <algorithm>
#include <string>
#include <map>
#include <vector>
//#include <fstream>
using namespace std;
int main()
{
//ifstream cin("test.in");
int L , N;
string irregular , plural , word;
string vowels = "aeiou";
while(cin >> L >> N)
{
map <string , string> mp;
for(int l=0; l<L; l++)
{
cin >> irregular >> plural;
mp[irregular] = plural;
}
for(int n=0; n<N; n++)
{
cin >> word;
//rule#1 :
if(mp[word]!="")
{
cout << mp[word] << endl;
continue;
}
size_t sz = word.size();
//rule#2 : vowels + y > ies :
if(sz>=2 && (vowels.find(word[sz-2])==-1) && word[sz-1]=='y')
{
word[sz-1]= 'i';
word+= "es";
}
//rule#3 :
else if(sz>=2 && ( (word[sz-2]=='c' && word[sz-1]=='h') || ((word[sz-2]=='s' && word[sz-1]=='h')) ))
word += "es";
else if(word[sz-1] =='o' || word[sz-1]=='s' || word[sz-1]=='x')
word += "es";
//rule#4 :
else
word+="s";
cout << word << endl;
}
}
return 0;
}
یک مسئله ساده دیگه :
http://acm.uva.es/p/v108/10878.html
[LEFT]using System;[/LEFT]
[LEFT]using System.Collections.Generic;[/LEFT]
[LEFT]using System.Text;[/LEFT]
[LEFT]namespace ConsoleApplication7[/LEFT]
[LEFT]{[/LEFT]
[LEFT] class Program[/LEFT]
[LEFT] {[/LEFT]
[LEFT] static void Main(string[] args)[/LEFT]
[LEFT] {[/LEFT]
[LEFT] string temp;[/LEFT]
[LEFT] string num1 = Console.ReadLine();[/LEFT]
[LEFT] string num2 = Console.ReadLine();[/LEFT]
[LEFT] if (num1.Length < num2.Length)[/LEFT]
[LEFT] {[/LEFT]
[LEFT] temp = num1;[/LEFT]
[LEFT] num1 = num2;[/LEFT]
[LEFT] num2 = temp;[/LEFT]
[LEFT] }[/LEFT]
[LEFT] int[] sum = new int[num1.Length];[/LEFT]
[LEFT] int m = num1.Length - 1;[/LEFT]
[LEFT] int n = num2.Length - 1;[/LEFT]
[LEFT] while (n >= 0)[/LEFT]
[LEFT] {[/LEFT]
[LEFT] sum[m] += (num1[m] + num2[n] - 96);[/LEFT]
[LEFT] if (sum[m] >= 10)[/LEFT]
[LEFT] {[/LEFT]
[LEFT] sum[m] -= 10;[/LEFT]
[LEFT] sum[m - 1] += 1;[/LEFT]
[LEFT] }[/LEFT]
[LEFT] n--;[/LEFT]
[LEFT] m--;[/LEFT]
[LEFT] }[/LEFT]
[LEFT] while (m >= 0)[/LEFT]
[LEFT] {[/LEFT]
[LEFT] sum[m] += num1[m] - 48;[/LEFT]
[LEFT] if (sum[m] >= 10)[/LEFT]
[LEFT] {[/LEFT]
[LEFT] if (m != 0)[/LEFT]
[LEFT] sum[m] -= 10;[/LEFT]
[LEFT] if (m - 1 == -1)[/LEFT]
[LEFT] break;[/LEFT]
[LEFT] sum[m - 1] += 1;[/LEFT]
[LEFT] }[/LEFT]
[LEFT] m--;[/LEFT]
[LEFT] }[/LEFT]
[LEFT] for (int i = 0; i < num1.Length; i++)[/LEFT]
[LEFT] Console.Write("{0}", sum[i]);[/LEFT]
[LEFT] Console.ReadLine();[/LEFT]
[LEFT] }[/LEFT]
[LEFT] }[/LEFT]
[LEFT]}[/LEFT]
Thread starter | عنوان | تالار | پاسخ ها | تاریخ |
---|---|---|---|---|
مسابقه برنامه نویسی ACM دانشگاه صنعتی شاهرود در سطح شمال شرق با جوایز ارزنده | مسابقه | 0 | ||
اطلاعات درباره مسابقات ACM | مسابقه | 6 | ||
درخواست سوالات مسابقات ACM | مسابقه | 0 | ||
S | 34rd ACM International Collegiate Programming Contest | مسابقه | 0 |