THE BEST PROGRAMMER
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

Spiral Tap

5 مشترك

اذهب الى الأسفل

Spiral Tap Empty Spiral Tap

مُساهمة من طرف feras_kassar الأربعاء فبراير 19, 2014 11:45 am

Spiral Tap

feras_kassar

الجنس : ذكر
عدد المساهمات : 78
السٌّمعَة : 1
تاريخ التسجيل : 19/02/2014

الرجوع الى أعلى الصفحة اذهب الى الأسفل

Spiral Tap Empty رد: Spiral Tap

مُساهمة من طرف ahmad-gafer السبت فبراير 22, 2014 1:18 am

ممكن اعرف فكرة الحل تبع هي المسألة ؟؟؟؟ !!!!!!!

ahmad-gafer

الجنس : ذكر
عدد المساهمات : 18
السٌّمعَة : 0
تاريخ التسجيل : 19/02/2014

الرجوع الى أعلى الصفحة اذهب الى الأسفل

Spiral Tap Empty عم ينفذ كلشي صح بس عطاني time limit exceeded بدو تغيير جذري ؟؟

مُساهمة من طرف اسراء ابراهيم الأحد فبراير 23, 2014 5:47 pm

#include


using namespace std;

int main(){

    int num;
    int l,b,i,j,n;

        struct found{
        int x,y;};

        found fond;

    while(cin>>n>>num&&num&&n){

   
    int k=n*n+1;
    int m=n;
   
    l=1; b=1;
    fond.x=0;
    fond.y=0;

   

    if(num==1){
        fond.x=(m+1)/2;
        fond.y=(m+1)/2;
        cout<<"Line = "<
    else if(num==k-1){
        fond.x=m;
        fond.y=m;
        cout<<"Line = "<

    else{
        l=1; b=1;
        int k=m*m+1;
       
    n=m;

    while(l        j=n;
        for(int i=n;i>=l;i--){
            k--;
            if (k==num){
                fond.x=i;
                fond.y=j;
                break;}}
       
        n--; i=l;

        for(int j=n;j>=b;j--){
            k--;
            if (k==num){
                fond.x=i;
                fond.y=j;
            break;}}
       
        l++; n++; j=b;

        for(int i=l;i<=n;i++){
            k--;
            if (k==num){
                fond.x=i;
                fond.y=j;
                break;}}
       

        i=n;
        n--; 
        b++;
        for(int j=b;j<=n;j++){
            k--;
            if (k==num){
                fond.x=i;
                fond.y=j;
                break;}}
        }


    cout<<"Line = "<    }


   

    return 0;}

اسراء ابراهيم

الجنس : انثى
عدد المساهمات : 2
السٌّمعَة : 0
تاريخ التسجيل : 20/02/2014

الرجوع الى أعلى الصفحة اذهب الى الأسفل

Spiral Tap Empty رد: Spiral Tap

مُساهمة من طرف قصي العثمان الإثنين فبراير 24, 2014 7:18 pm

لو سمحتي إسراء لما تحطي كودك على المنتدى في شغلة وقت تكتبي الرد اسمها "إدراج أكواد برمجية" .. بيطلع الكود منسق و واضح ، عدا عن إني لما نسخت كودك طلع فيه شغلات نافصة  Neutral ..
بس من يلي فهمته من يلي كاتبتيه إنك عم تعملي "محاكاة" ، يعني إنك عم توقفي بخانة و عم تضلي تمشي لحتى توصلي للخانة المطلوبة ، هي الطريقة بطيئة كتير لأنو عدد الخانات يلي رح تضطري تمشي عليها ممكن يكون كتير كبير .. ملاحظة ممكن تساعدك بتسريع خوارزميتك :
فيكي تعرفي انتي بأي "حلقة" (أو مستوى ، ما بعرف شو بدي سميها  Rolling Eyes ) بالشبكة لازم تبحثي ..
قصدي إنو لاحظي الأعداد من 2 إلى 9 ، هدول بشكلو حلقة ، و الأعداد من 10 إلى 25 بيشكلو حلقة ... و هكذا ..
إذا عرفتي انتي بأي حلقة لازم تبحثي رح تختصري على حالك كتير شغل ..
الملاحظة التانية هو إنو الأعداد يلي بتشكل حلقة مانها عشوائية ، إلها نمط محدد ...
الحلقات بتنتهي بالأعداد التالية : (1) ، 9 ، 25 ، 49 ، 81 ....
و بتبدأ بالأعداد : 1+1 ، 9+1 ، 25+1 ، 49+1 ، 81+1 ....
بتمنى تكون الفكرة وصلتك  Smile

قصي العثمان

الجنس : ذكر
عدد المساهمات : 2
السٌّمعَة : 0
تاريخ التسجيل : 19/02/2014

الرجوع الى أعلى الصفحة اذهب الى الأسفل

Spiral Tap Empty رد: Spiral Tap

مُساهمة من طرف اسراء ابراهيم الثلاثاء فبراير 25, 2014 7:59 am

اي صحيح ما كنت منتبهة عالنقص (في بتعليمات الطباعة) ما كنت منتبهة pale  وبعتذر مشان عدم التنسيق انو كمان ما كنت منتبهة على خيار إدراج الكود  pale ...
شكرا كتييييير وصلت الفكرة و يتم التعديل

اسراء ابراهيم

الجنس : انثى
عدد المساهمات : 2
السٌّمعَة : 0
تاريخ التسجيل : 20/02/2014

الرجوع الى أعلى الصفحة اذهب الى الأسفل

Spiral Tap Empty رد: Spiral Tap

مُساهمة من طرف علا الأربعاء فبراير 26, 2014 2:09 pm

أنا عملت البرنامج وطلعلي time limit exceed
الكود:
#include<iostream>
#include<vector>
using namespace::std;
int main()
{
   int sz,pp;
cin>>sz>>pp;
while(sz!=0 && pp!=0){int pos1,pos2;
   int x=sz*sz;
   int xx=sz;int xxx=sz;
   vector<vector<int> > a(100000);
   for(int ii=0;ii<100000;ii++)
      a[ii].resize(100000);
   int p=0,f=1;
   int u=(sz+1)/2;
   int mm=sz-u;
   a[u][u]=1;
   if(pp==1)
   {   pos1=u;
   pos2=u;
   }
   
   u--;
      xxx=x-u*8;
while(pp<xxx)
{u--;
x=xxx;
mm--;
sz--;
   p++;
   f++;
xxx=xxx-u*8;}
   
for(int nn=0;nn<mm;nn++){if(pos1>0 && pos2>0)break;
   for(int i=sz;i>p;i--)
   {a[i][sz]=x;
   if(pp==a[i][sz])
   {pos1=i;
   pos2=sz;
   }
   x--;}
   if(pos1>0 && pos2>0)break;
   for(int j=sz-1;j>p;j--)
   {a[f][j]=x;
   if(pp==a[f][j])
   {pos1=f;
   pos2=j;
   
   }
   x--;
   }
   if(pos1>0 && pos2>0)break;
   for(int k=f+1;k<=sz;k++)
   {a[k][f]=x;
   if(pp==a[k][f])
   {pos1=k;
   pos2=f;
   }
   x--;}
   if(pos1>0 && pos2>0)break;
   for(int l=f+1;l<sz;l++)
   {a[sz][l]=x;
   if(pp==a[sz][l])
   {pos1=sz;
   pos2=l;
   }
   x--;
   }
   sz--;
   p++;
   f++;}
   cout<<"Line = "<<pos1<<", column ="<<pos2<<"."<<endl;
cin>>sz>>pp;

pos1=0;
pos2=0;
}}

علا

الجنس : انثى
عدد المساهمات : 19
السٌّمعَة : 1
تاريخ التسجيل : 19/02/2014

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى