Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)

Paste

Pasted as C# by iSohrab ( 13 years ago )
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DangDong
{
    class member
    {
        public string name;
        public double p;
    }
    class Program
    {
        static void Main(string[] args)
        {
            List<member> members=new List<member>();
            Console.WriteLine("Enter number of Members");
            int member_count = int.Parse(Console.ReadLine());
            for (int i = 0; i < member_count; i++)
            {
                Console.WriteLine("Enter Payment of member {0}", i);
                member m = new member();
                m.name = "X" + i;
                m.p = double.Parse(Console.ReadLine());
                members.Add(m);
            }
            
            // Calculate Dong for each person
             double d
            Console.WriteLine("dong of members is: {0}", dong);
            // minus Dong from payments
            for (int i = 0; i < member_count; i++)
            {
                members[i].p -= dong;
            }
            /*// seprate creditors from deptors
            List<member> creditors = new List<member>();
            List<member> deptors = new List<member>();
            for (int i = 0; i < member_count; i++)
            {
                if(members[i].p<0)
                {
                    // he is deptor.. :(
                    deptors.Add(members[i]);
                }
                else
                {
                    // he is creditor... :)
                    creditors.Add(members[i]);
                }
            }*/

            while (zero(members))
            {
                member max_member = members[max(members)];
                member min_member = members[min(members)];
                if (-(min_member.p) < max_member.p)
                {
                    Console.WriteLine(min_member.name + "---" + Math.Ceiling(min_member.p).ToString() + "--->" + max_member.name);
                    max_member.p += min_member.p;
                    min_member.p = 0;
                }
                else
                {
                    Console.WriteLine(min_member.name + "---" + Math.Ceiling(max_member.p).ToString() + "--->" + max_member.name);
                    min_member.p += max_member.p;
                    max_member.p = 0;
                }

            }
            Console.ReadLine();
        }
        public static double getDong(List<member> m)
        {
            double sum = 0;
            for (int i = 0; i < m.Count; i++)
            {
                sum += m[i].p;
            }
            return sum / m.Count;
        }
        public static bool zero(List<member> m)
        {
            for(int i=0;i<m.Count;i++)
            {
                if(m[i].p!=0)
                    return true;
            }
            return false;
        }
        public static int max(List<member> m)
        {
            int index_max = 0;
            double max_payment = 0;
            for (int i = 0; i < m.Count; i++)
            {
                if (m[i].p > max_payment)
                {
                    index_max = i;
                }
            }
            return index_max;
        }
        public static int min(List<member> m)
        {
            int index_min = 0;
            double min_payment = 0;
            for (int i = 0; i < m.Count; i++)
            {
                if (m[i].p < min_payment)
                {
                    index_min = i;
                    min_payment = m[i].p;
                }
            }
            return index_min;
        }
    }
    
}

 

Revise this Paste

Children: 66291
Your Name: Code Language: